Author: dan
Date: 2008-12-08 06:37:03 -0700 (Mon, 08 Dec 2008)
New Revision: 3708
Modified:
SQLObject/branches/0.10/sqlobject/col.py
Log:
Fixed createSQL table constrains generation when table name includes the database name (contains a dot)
Modified: SQLObject/branches/0.10/sqlobject/col.py
===================================================================
--- SQLObject/branches/0.10/sqlobject/col.py 2008-12-08 13:36:24 UTC (rev 3707)
+++ SQLObject/branches/0.10/sqlobject/col.py 2008-12-08 13:37:03 UTC (rev 3708)
@@ -833,6 +833,7 @@
def mysqlCreateReferenceConstraint(self):
sTName = self.soClass.sqlmeta.table
+ sTLocalName = sTName.split('.')[-1]
other = findClass(self.foreignKey, self.soClass.sqlmeta.registry)
tName = other.sqlmeta.table
idName = other.sqlmeta.idName
@@ -845,7 +846,7 @@
action = 'ON DELETE RESTRICT'
else:
action = ''
- constraint = ('ALTER TABLE %(sTName)s ADD CONSTRAINT %(sTName)s_%(colName)s_exists '
+ constraint = ('ALTER TABLE %(sTName)s ADD CONSTRAINT %(sTLocalName)s_%(colName)s_exists '
'FOREIGN KEY (%(colName)s) '
'REFERENCES %(tName)s (%(idName)s) '
'%(action)s' %
@@ -853,7 +854,8 @@
'colName': self.dbName,
'idName': idName,
'action': action,
- 'sTName': sTName})
+ 'sTName': sTName,
+ 'sTLocalName': sTLocalName})
return constraint
def mysqlCreateSQL(self):
|