#29182: SQLite 3.26 breaks database migration ForeignKey constraint, leaving
<table_name>__old in db schema
----------------------------------+------------------------------------
Reporter: ezaquarii | Owner: nobody
Type: Bug | Status: new
Component: Migrations | Version: 2.1
Severity: Release blocker | Resolution:
Keywords: sqlite migration | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
----------------------------------+------------------------------------
Comment (by Chris Lamb):
* Apologies for the dupe. I filed #30016after not reading the most-recent
entries here more carefully...
* I can reproduce with sqlite3 `3.26.0` (but not with `3.25.3`)
However, the patch in
https://code.djangoproject.com/ticket/29182#comment:12 does not work for
me:
{{{
test_testcase_ordering
(test_runner.test_discover_runner.DiscoverRunnerTest) ... ok
test_transaction_support (test_runner.tests.Sqlite3InMemoryTestDbs)
Ticket #16329: sqlite3 in-memory test databases ... ERROR
======================================================================
ERROR: test_transaction_support (test_runner.tests.Sqlite3InMemoryTestDbs)
Ticket #16329: sqlite3 in-memory test databases
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/lamby/git/debian/python-team/modules/python-
django/tests/test_runner/tests.py", line 226, in test_transaction_support
DiscoverRunner(verbosity=0).setup_databases()
File "/home/lamby/git/debian/python-team/modules/python-
django/django/test/runner.py", line 551, in setup_databases
self.parallel, **kwargs
File "/home/lamby/git/debian/python-team/modules/python-
django/django/test/utils.py", line 174, in setup_databases
serialize=connection.settings_dict.get('TEST', {}).get('SERIALIZE',
True),
File "/home/lamby/git/debian/python-team/modules/python-
django/django/db/backends/base/creation.py", line 68, in create_test_db
run_syncdb=True,
File "/home/lamby/git/debian/python-team/modules/python-
django/django/core/management/__init__.py", line 148, in call_command
return command.execute(*args, **defaults)
File "/home/lamby/git/debian/python-team/modules/python-
django/django/core/management/base.py", line 353, in execute
output = self.handle(*args, **options)
File "/home/lamby/git/debian/python-team/modules/python-
django/django/core/management/base.py", line 83, in wrapped
res = handle_func(*args, **kwargs)
File "/home/lamby/git/debian/python-team/modules/python-
django/django/core/management/commands/migrate.py", line 172, in handle
self.sync_apps(connection, executor.loader.unmigrated_apps)
File "/home/lamby/git/debian/python-team/modules/python-
django/django/core/management/commands/migrate.py", line 306, in sync_apps
editor.create_model(model)
File "/home/lamby/git/debian/python-team/modules/python-
django/django/db/backends/base/schema.py", line 312, in create_model
self.execute(sql, params or None)
File "/home/lamby/git/debian/python-team/modules/python-
django/django/db/backends/base/schema.py", line 118, in execute
"Executing DDL statements while in a transaction on databases "
django.db.transaction.TransactionManagementError: Executing DDL statements
while in a transaction on databases that can't perform a rollback is
prohibited.
----------------------------------------------------------------------
Ran 5020 tests in 138.176s
FAILED (errors=1, skipped=657, expected failures=3)
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/29182#comment:22>
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 [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/067.41052a35cc4f14a12c1095589ef3565b%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.