On Feb 25, 2008, at 9:03 PM, Tim Lesher wrote:
>
> I'm using SQLAlchemy, reflecting from an existing MySQL database. I
> want to override two DateTime columns to provide proper "created" and
> "updated" timestamps (since MySQL can't handle auto-updating two
> TIMESTAMP columns in the same row).
>
> According to the SA docs, this should work; however, when I autoload
> my Table objects, I get the error:
>
> <class 'sqlalchemy.exceptions.ArgumentError'>: Table 'tablename' is
> already defined for this MetaData instance.
>
> This short example illustrates the issue; the test_users table fails
> to load. The error goes away if I either remove the foreign key
> constraints in the 'test_pets' table, or remove the Column overrides
> from the 'test_users' table.
>
> It seems as if SA is instantiating the users mapper first (because the
> pets table refers to it), but not paying attention to the override; it
> then tries to instantiate the users mapper to effect the override, but
> fails.
>
> Thanks in advance...
>
upgrade to 0.4.3. The error message is now "Table '%s' is already
defined for this MetaData instance. Specify 'useexisting=True' to
redefine options and columns on an existing Table object.". This new
behavior allows the useexisting=True flag, which has been around for a
long time, to use an existing table and overrride the columns, i.e.:
t1 = Table('users', meta, autoload=True)
t2 = Table('addresses', meta, Column('id', Integer, primary_key=True),
autoload=True, useexisting=True)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---