Opened 16 years ago
Closed 16 years ago
#7597 closed (fixed)
syncdb fails if the loaddata management command is called in a post_syncdb handler
Reported by: | Keith Bussell | Owned by: | Keith Bussell |
---|---|---|---|
Component: | Uncategorized | Version: | dev |
Severity: | Keywords: | ||
Cc: | kbussell@… | Triage Stage: | Unreviewed |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Calling management.call_command('loaddata', ...)
from within a post_syncdb handler will cause all subsequent SQL to fail. This broke as of r7803.
models.py:
class Book(models.Model): title = models.CharField(max_length=255, db_index=True)
management.py:
def post_syncdb(sender, created_models): if models.Book in created_models: management.call_command('loaddata', 'data.json') dispatcher.connect(post_syncdb, sender=models, signal=signals.post_syncdb)
data.json:
[{"pk": 1, "model": "app1.book", "fields": {"title": "This is a test"}}]
> manage.py syncdb Creating table app1_book Installing json fixture 'data' from 'C:\source\test\app1\fixtures'. Installed 1 object(s) from 1 fixture(s) Installing index for app1.Book model Failed to install index for app1.Book model: cursor already closed
Attachments (1)
Change History (4)
comment:1 by , 16 years ago
comment:2 by , 16 years ago
Has patch: | set |
---|---|
Owner: | changed from | to
Status: | new → assigned |
Added a simple patch to fix this.
comment:3 by , 16 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Note:
See TracTickets
for help on using tickets.
Forgot to mention, in case it's relevant: using the postgresql_psycopg2 engine against PostgreSQL 8.3.