Code

Ticket #1373: newfix_drop_foreignkey.diff

File newfix_drop_foreignkey.diff, 2.7 KB (added by njharman@…, 8 years ago)
Line 
1Index: db/backends/ado_mssql/base.py
2===================================================================
3--- db/backends/ado_mssql/base.py       (revision 2717)
4+++ db/backends/ado_mssql/base.py       (working copy)
5@@ -121,6 +121,9 @@
6 def get_random_function_sql():
7     return "RAND()"
8 
9+def get_drop_foreignkey_sql():
10+    return "DROP CONSTRAINT"
11+
12 OPERATOR_MAPPING = {
13     'exact': '= %s',
14     'iexact': 'LIKE %s',
15Index: db/backends/postgresql/base.py
16===================================================================
17--- db/backends/postgresql/base.py      (revision 2717)
18+++ db/backends/postgresql/base.py      (working copy)
19@@ -98,6 +98,9 @@
20 def get_random_function_sql():
21     return "RANDOM()"
22 
23+def get_drop_foreignkey_sql():
24+    return "DROP CONSTRAINT"
25+
26 # Register these custom typecasts, because Django expects dates/times to be
27 # in Python's native (standard-library) datetime/time format, whereas psycopg
28 # use mx.DateTime by default.
29Index: db/backends/sqlite3/base.py
30===================================================================
31--- db/backends/sqlite3/base.py (revision 2717)
32+++ db/backends/sqlite3/base.py (working copy)
33@@ -116,6 +116,9 @@
34 def get_random_function_sql():
35     return "RANDOM()"
36 
37+def get_drop_foreignkey_sql():
38+    return ""
39+
40 def _sqlite_date_trunc(lookup_type, dt):
41     try:
42         dt = util.typecast_timestamp(dt)
43Index: db/backends/mysql/base.py
44===================================================================
45--- db/backends/mysql/base.py   (revision 2717)
46+++ db/backends/mysql/base.py   (working copy)
47@@ -146,6 +146,9 @@
48 def get_random_function_sql():
49     return "RAND()"
50 
51+def get_drop_foreignkey_sql():
52+    return "DROP FOREIGN KEY"
53+
54 OPERATOR_MAPPING = {
55     'exact': '= %s',
56     'iexact': 'LIKE %s',
57Index: db/backends/dummy/base.py
58===================================================================
59--- db/backends/dummy/base.py   (revision 2717)
60+++ db/backends/dummy/base.py   (working copy)
61@@ -33,4 +33,5 @@
62 get_date_trunc_sql = complain
63 get_limit_offset_sql = complain
64 get_random_function_sql = complain
65+get_drop_foreignkey_sql = complain
66 OPERATOR_MAPPING = {}
67Index: core/management.py
68===================================================================
69--- core/management.py  (revision 2717)
70+++ core/management.py  (working copy)
71@@ -290,7 +290,7 @@
72                     output.append('%s %s %s %s;' % \
73                         (style.SQL_KEYWORD('ALTER TABLE'),
74                         style.SQL_TABLE(backend.quote_name(table)),
75-                        style.SQL_KEYWORD('DROP CONSTRAINT'),
76+                        style.SQL_KEYWORD(backend.get_drop_foreignkey_sql()),
77                         style.SQL_FIELD(backend.quote_name("%s_referencing_%s_%s" % (col, r_table, r_col)))))
78                 del references_to_delete[klass]
79