[SQL-CVS] r1135 - SQLObject/trunk/sqlobject
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
|
From: <sub...@co...> - 2005-10-23 13:28:19
|
Author: phd
Date: 2005-10-23 13:28:07 +0000 (Sun, 23 Oct 2005)
New Revision: 1135
Modified:
SQLObject/trunk/sqlobject/col.py
Log:
Applied the patch N1299109 by Andy Dustman - FOREIGN KEY for MySQL.
Modified: SQLObject/trunk/sqlobject/col.py
===================================================================
--- SQLObject/trunk/sqlobject/col.py 2005-10-22 23:27:09 UTC (rev 1134)
+++ SQLObject/trunk/sqlobject/col.py 2005-10-23 13:28:07 UTC (rev 1135)
@@ -758,6 +758,31 @@
'sTName': sTName})
return constraint
+ def mysqlCreateSQL(self):
+ sql = SOKeyCol.mysqlCreateSQL(self)
+ other = findClass(self.foreignKey, self.soClass.sqlmeta.registry)
+ tName = other.sqlmeta.table
+ idName = other.sqlmeta.idName
+ if self.cascade is not None:
+ if self.cascade == 'null':
+ action = 'ON DELETE SET NULL'
+ elif self.cascade:
+ action = 'ON DELETE CASCADE'
+ else:
+ action = 'ON DELETE RESTRICT'
+ else:
+ action = ''
+ constraint = ('CONSTRAINT %(colName)s_exists '
+ 'FOREIGN KEY (%(colName)s) '
+ 'REFERENCES %(tName)s (%(idName)s) '
+ '%(action)s' %
+ {'tName': tName,
+ 'colName': self.dbName,
+ 'idName': idName,
+ 'action': action})
+ sql = ', '.join([sql, constraint])
+ return sql
+
def sybaseCreateSQL(self):
sql = SOKeyCol.sybaseCreateSQL(self)
other = findClass(self.foreignKey)
|