Author: russellm
Date: 2010-02-26 05:26:41 -0600 (Fri, 26 Feb 2010)
New Revision: 12597

Modified:
   django/trunk/django/core/management/commands/syncdb.py
Log:
Fixed #12712 -- Corrected a problem with synchronizing that prevented m2m 
tables from being created under certain circumstances. Thanks to IonelMaries 
for the report, and Alex Gaynor for the patch.

Modified: django/trunk/django/core/management/commands/syncdb.py
===================================================================
--- django/trunk/django/core/management/commands/syncdb.py      2010-02-26 
11:12:14 UTC (rev 12596)
+++ django/trunk/django/core/management/commands/syncdb.py      2010-02-26 
11:26:41 UTC (rev 12597)
@@ -63,18 +63,23 @@
                 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)

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-upda...@googlegroups.com.
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to