Eric Naeseth wrote:
>
> SQLAlchemy seems to have an issue reflecting MySQL tables that have
> foreign keys when the table being reflected is not in the database
> specified in the connection string.
>
> Let's say I'm working on an app to manage a database named "library",
> but that I also need access to the tables in the "people" database on
> the same MySQL server. This shouldn't be a problem, since the
> SQLAlchemy's table type takes a "schema" keyword argument, so I do
> something like the following:
>
> from sqlalchemy import *
> from sqlalchemy.orm import *
>
> engine = create_engine('mysql://localhost/library')
> metadata = MetaData(bind=engine)
> # ...
> table = Table('child', metadata, autoload=True, schema='people')
> # error raised: sqlalchemy.exceptions.NoSuchTableError: parent
>
> The table "child" is using InnoDB, and it contains a column with a
> foreign key constraint that refers to a column on the table "parent".
> The problem is that SQLAlchemy is not resolving the table name
> relative to the database in which the constraint occurs: it sees that
> the constraint refers to a table called "parent", treats "parent" as
> the full name, and as a result, looks for "parent" at "library.parent"
> instead of "people.parent", resulting in a failure to autoload.
its all dependent on what MySQL sends back. Have you tried SQLA trunk
since reflection has been enhanced there ? also what version of MySQL ,
as it can be version specific.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---