#23031: Django 1.7.x test failing for application with migrations and initial 
data
----------------------------+----------------------
     Reporter:  linovia     |      Owner:  nobody
         Type:  Bug         |     Status:  new
    Component:  Migrations  |    Version:  1.7-rc-1
     Severity:  Normal      |   Keywords:
 Triage Stage:  Unreviewed  |  Has patch:  0
Easy pickings:  0           |      UI/UX:  0
----------------------------+----------------------
 It seems commit 0dd737a719cfbd3bc11ff6f2b90161883fcebea0 introduced a
 regression in the following case:
 - the application has migrations
 - the application has initial_data

 With this configuration Django will crash before any test is run.
 This is caused by the initial_data being loaded at the end of the flush
 while the migrations did not create the associated tables yet:

 {{{
 (django17_test) air-de-xavier:demo xordoquy$ python manage.py test
 Creating test database for alias 'default'...
 Traceback (most recent call last):
   File "manage.py", line 10, in <module>
     execute_from_command_line(sys.argv)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/core/management/__init__.py", line
 385, in execute_from_command_line
     utility.execute()
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/core/management/__init__.py", line
 377, in execute
     self.fetch_command(subcommand).run_from_argv(self.argv)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/core/management/commands/test.py",
 line 50, in run_from_argv
     super(Command, self).run_from_argv(argv)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/core/management/base.py", line 288,
 in run_from_argv
     self.execute(*args, **options.__dict__)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/core/management/commands/test.py",
 line 71, in execute
     super(Command, self).execute(*args, **options)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/core/management/base.py", line 337,
 in execute
     output = self.handle(*args, **options)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/core/management/commands/test.py",
 line 88, in handle
     failures = test_runner.run_tests(test_labels)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/test/runner.py", line 147, in
 run_tests
     old_config = self.setup_databases()
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/test/runner.py", line 109, in
 setup_databases
     return setup_databases(self.verbosity, self.interactive, **kwargs)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/test/runner.py", line 299, in
 setup_databases
     serialize=connection.settings_dict.get("TEST_SERIALIZE", True),
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/db/backends/creation.py", line 374,
 in create_test_db
     test_flush=True,
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/core/management/__init__.py", line
 115, in call_command
     return klass.execute(*args, **defaults)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/core/management/base.py", line 337,
 in execute
     output = self.handle(*args, **options)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/core/management/commands/migrate.py",
 line 141, in handle
     inhibit_post_migrate=True,
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/core/management/__init__.py", line
 115, in call_command
     return klass.execute(*args, **defaults)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/core/management/base.py", line 337,
 in execute
     output = self.handle(*args, **options)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/core/management/base.py", line 532,
 in handle
     return self.handle_noargs(**options)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/core/management/commands/flush.py",
 line 85, in handle_noargs
     call_command('loaddata', 'initial_data', **options)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/core/management/__init__.py", line
 115, in call_command
     return klass.execute(*args, **defaults)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/core/management/base.py", line 337,
 in execute
     output = self.handle(*args, **options)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/core/management/commands/loaddata.py",
 line 60, in handle
     self.loaddata(fixture_labels)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/core/management/commands/loaddata.py",
 line 90, in loaddata
     self.load_label(fixture_label)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/core/management/commands/loaddata.py",
 line 147, in load_label
     obj.save(using=self.using)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/core/serializers/base.py", line
 173, in save
     models.Model.save_base(self.object, using=using, raw=True)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/db/models/base.py", line 618, in
 save_base
     updated = self._save_table(raw, cls, force_insert, force_update,
 using, update_fields)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/db/models/base.py", line 680, in
 _save_table
     forced_update)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/db/models/base.py", line 724, in
 _do_update
     return filtered._update(values) > 0
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/db/models/query.py", line 598, in
 _update
     return query.get_compiler(self.db).execute_sql(CURSOR)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/db/models/sql/compiler.py", line
 1003, in execute_sql
     cursor = super(SQLUpdateCompiler, self).execute_sql(result_type)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/db/models/sql/compiler.py", line
 785, in execute_sql
     cursor.execute(sql, params)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/db/backends/utils.py", line 65, in
 execute
     return self.cursor.execute(sql, params)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/db/utils.py", line 94, in __exit__
     six.reraise(dj_exc_type, dj_exc_value, traceback)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/db/backends/utils.py", line 65, in
 execute
     return self.cursor.execute(sql, params)
   File "/Users/xordoquy/.virtualenvs/django17_test/lib/python2.7/site-
 packages/Django-1.7c1-py2.7.egg/django/db/backends/sqlite3/base.py", line
 485, in execute
     return Database.Cursor.execute(self, query, params)
 django.db.utils.OperationalError: Problem installing fixture
 '/Users/xordoquy/django17_test/demo/demo/core/fixtures/initial_data.json':
 Could not load core.Bug(pk=1): no such table: core_bug
 (django17_test) air-de-xavier:demo xordoquy$
 }}}

-- 
Ticket URL: <https://code.djangoproject.com/ticket/23031>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/050.d682cd9f40b440bfbcf3d4e1057a06c7%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to