you might try asking this as a generic MySQL question on stackoverflow, I don't really know how MySQL does cross-schema work. my rough understanding was "not much".
On Aug 21, 2013, at 4:17 PM, Gerald Thibault <[email protected]> wrote: > I have a User class, and a Registration class with a FK to User.id. > > When I try to create these on a db using InnoDB as default, I get this error: > > sqlalchemy.exc.OperationalError: (OperationalError) (1005, "Can't create > table 'test2.registrations' (errno: 150)") '\nCREATE TABLE > test2.registrations (\n\tid INTEGER NOT NULL AUTO_INCREMENT, \n\tuser_id > INTEGER, \n\tPRIMARY KEY (id), \n\tFOREIGN KEY(user_id) REFERENCES user_vars > (id)\n)\n\n' () > > If i copy this query and try it manually via MySQL Workbench, it still fails. > > If I prepend the default schema to the table (user_vars -> 'test.user_vars'), > the query succeeds. > > I'm not entirely sure what is happening here. In the absence of an explicit > schema, I thought mysql used the active schema to handle table lookups, but > it looks like this isn't the case. Is it 'switching' the active schema to the > one hosting the new table? Also, this works perfectly with MyISAM tables, so > I have even less to go on. > > Any ideas? Do I need explicit schema declarations for every fk declared? > > -- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/sqlalchemy. > For more options, visit https://groups.google.com/groups/opt_out. > <innodb.py>
signature.asc
Description: Message signed with OpenPGP using GPGMail
