#1766 closed defect (fixed)
[patch] Syncdb fails if two models within an application refer to the same database table.
Reported by: | Owned by: | Adrian Holovaty | |
---|---|---|---|
Component: | Core (Other) | Version: | |
Severity: | normal | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
If two models within a single application, or in two applications within the same project, reference the same database table (by overriding db_table in the Meta class for at least one of them,) then 'manage.py syncdb' will try to create the table twice, causing the database backend to raise an exception, and manage.py will fail.
django/core/management.py is getting a list of existing tables through database introspection in order to avoid exactly this problem. Currently, however, it does not update that list as it creates tables, so if a table is mentioned twice, it will blindly try to create it twice.
This patch adds one line to syncdb() in management.py to update the list of existing tables as they are created.
Attachments (1)
Change History (3)
by , 19 years ago
Attachment: | management.diff added |
---|
comment:1 by , 19 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
One-line patch to resolve this issue