Previously I was doing development of a project on an Ubuntu 9.04 machine with MySQL 5.0 and just recently switched to doing development on a MacBook Pro. I installed identical versions of MySQL on the MacBook. I used the exact same source files and installed the same versions of all libraries for the project, however, when I try to initialize the model on the MacBook I get the following stack trace:
File "/Users/kevin/mydevenv/lib/python2.6/site-packages/ SQLAlchemy-0.5.6-py2.6.egg/sqlalchemy/orm/__init__.py", line 751, in mapper return Mapper(class_, local_table, *args, **params) File "/Users/kevin/mydevenv/lib/python2.6/site-packages/ SQLAlchemy-0.5.6-py2.6.egg/sqlalchemy/orm/mapper.py", line 194, in __init__ self._configure_inheritance() File "/Users/kevin/mydevenv/lib/python2.6/site-packages/ SQLAlchemy-0.5.6-py2.6.egg/sqlalchemy/orm/mapper.py", line 239, in _configure_inheritance self.inherit_condition = sqlutil.join_condition (self.inherits.local_table, self.local_table) File "/Users/kevin/mydevenv/lib/python2.6/site-packages/ SQLAlchemy-0.5.6-py2.6.egg/sqlalchemy/sql/util.py", line 135, in join_condition "between '%s' and '%s'" % (a.description, b.description)) sqlalchemy.exc.ArgumentError: Can't find any foreign key relationships between 'USER' and 'MANAGER' This is despite the fact that there is a foreign relation between the two as follows on the MANAGER table: CONSTRAINT FK_MANAGER_USER FOREIGN KEY (user_id) REFERENCES `USER`(user_id) I have traced the problem so far to the fact that on Ubuntu, the ForeignKey in SQLAlchemy is built as ForeignKey(u'USER.user_id') and on the Mac it is ForeignKey(u'user.user_id'). This has been confirmed by tracing the code into sql.util.join_condition where the call fk.get_referant() is being made. Note again, this is the EXACT SAME code running on both machines. I don't know if it is a MySQL setting (unlikely), MySQLdb, or SQLAlchemy that is causing the incorrect case issue on the table name. Does anyone know off hand what might be going on here? Just to confirm, the table in the database is called "USER" and therefore any search for "user" will not yield any results. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---