Skip to content

Commit

Permalink
Fixed #12712 -- Corrected a problem with synchronizing that prevented…
Browse files Browse the repository at this point in the history
… m2m tables from being created under certain circumstances. Thanks to IonelMaries for the report, and Alex Gaynor for the patch.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@12597 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
russellm committed Feb 26, 2010
1 parent 1dffed7 commit ad49d15
Showing 1 changed file with 10 additions and 5 deletions.
15 changes: 10 additions & 5 deletions django/core/management/commands/syncdb.py
Expand Up @@ -63,18 +63,23 @@ def handle_noargs(self, **options):
if router.allow_syncdb(db, m)])
for app in models.get_apps()
)
def model_installed(model):
opts = model._meta
converter = connection.introspection.table_name_converter
return not ((converter(opts.db_table) in tables) or
(opts.auto_created and converter(opts.auto_created._meta.db_table) in tables))

manifest = dict(
(app_name, filter(model_installed, model_list))
for app_name, model_list in manifest.iteritems()
)

# Create the tables for each model
for app_name, model_list in manifest.items():
for model in model_list:
# Create the model's database table, if it doesn't already exist.
if verbosity >= 2:
print "Processing %s.%s model" % (app_name, model._meta.object_name)
opts = model._meta
if (connection.introspection.table_name_converter(opts.db_table) in tables or
(opts.auto_created and
connection.introspection.table_name_converter(opts.auto_created._meta.db_table) in tables)):
continue
sql, references = connection.creation.sql_create_model(model, self.style, seen_models)
seen_models.add(model)
created_models.add(model)
Expand Down

0 comments on commit ad49d15

Please sign in to comment.