Skip to content

Commit

Permalink
[multi-db] Fixed orphan pending error message. Changed get_create_tab…
Browse files Browse the repository at this point in the history
…le to only fill pending if backend supports constraints.

git-svn-id: http://code.djangoproject.com/svn/django/branches/multiple-db-support@3762 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
jpellerin committed Sep 15, 2006
1 parent c01d2f4 commit ecb5b81
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 7 deletions.
7 changes: 3 additions & 4 deletions django/core/management.py
Original file line number Diff line number Diff line change
Expand Up @@ -411,16 +411,15 @@ def _install(app, commit=True, initial_data=True):
models_installed = manager.get_installed_models(tables)

for model in pending.keys():
manager = model._default_manager
if model in models_installed:
for rel_class, f in pending[model]:
manager = model._default_manager
for statement in manager.get_pending(rel_class, f):
statement.execute()
pending.pop(model)
else:
raise Exception("%s is not installed, but there are "
"pending statements that need it: %s"
% (model, statements))
raise Exception("%s is not installed, but it has pending "
"references" % model)
except Exception, e:
import traceback
print traceback.format_exception(*sys.exc_info())
Expand Down
6 changes: 3 additions & 3 deletions django/db/backends/ansi/sql.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,8 @@ def get_create_table(self, model, style=None, pending=None):
else:
# We haven't yet created the table to which this field
# is related, so save it for later.
pending.setdefault(f.rel.to, []).append((model, f))
if backend.supports_constraints:
pending.setdefault(f.rel.to, []).append((model, f))
table_output.append(' '.join(field_output))
if opts.order_with_respect_to:
table_output.append(style.SQL_FIELD(quote_name('_order')) + ' ' + \
Expand All @@ -124,8 +125,7 @@ def get_create_table(self, model, style=None, pending=None):
create = [BoundStatement('\n'.join(full_statement), db.connection)]

# Pull out any pending statements for me
if (pending and
backend.supports_constraints):
if pending:
if model in pending:
for rel_class, f in pending[model]:
create.append(self.get_ref_sql(model, rel_class, f,
Expand Down

0 comments on commit ecb5b81

Please sign in to comment.