Opened 10 years ago
Last modified 8 years ago
#24711 new New feature
Allow flush management command to drop tables and re-run migrations
Reported by: | Pradeek | Owned by: | nobody |
---|---|---|---|
Component: | Core (Management commands) | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Accepted | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Pull Requests: | How to create a pull request | ||
Description ¶
This means that after running flush, migrate does not have any effect. This makes it difficult when the migrate command is responsible for loading fixtures, which according to the docs seems to be the way forward.
Looking for feedback on how we want to do this. Should we clear the migrations table on flush or should there be a flag that has to be manually added?
According to the ticket's flags, the next step(s) to move this issue forward are:
- To provide a patch by sending a pull request. Claim the ticket when you start working so that someone else doesn't duplicate effort. Before sending a pull request, review your work against the patch review checklist. Check the "Has patch" flag on the ticket after sending a pull request and include a link to the pull request in the ticket comment when making that update. The usual format is:
[https://github.com/django/django/pull/#### PR]
.
Change History (8)
comment:1 by , 10 years ago
by , 10 years ago
Attachment: | 24711.diff added |
---|
comment:2 by , 10 years ago
The reason why I proposed this, is because Django previously loaded initial data during flush. Such a functionality cannot be replicated here without going outside the management commands and dropping the db manually. I personally think flush without loading fixtures (assuming migrations will be the only way to do initial data in the future) would not be of much use / and feels broken. I think we should be able to fake schema migrations but still run python migrations on flush.
comment:3 by , 10 years ago
The problem what that approach is that older data migrations may not run on the current version of the schema.
An option to "flush" by deleting all managed tables and re-running migrations from the beginning might be acceptable. In the meantime, does the documentation patch look okay?
comment:4 by , 10 years ago
Yeah. The documentation patch is fine.
Reg adding an option to flush, what other managed tables should be cleared? Will take a crack at adding it.
comment:5 by , 10 years ago
It would operate on the same tables, but "DROP" them instead of "TRUNCATE". By managed I meant, Options.managed.
comment:6 by , 10 years ago
Component: | Migrations → Core (Management commands) |
---|---|
Summary: | Flush manage command does not clear out migrations. → Allow flush management command to drop tables and re-run migrations |
Triage Stage: | Unreviewed → Accepted |
Type: | Uncategorized → New feature |
Version: | 1.8 → master |
Clearing the migrations history would mean that all schema migrations would need to be faked. I think it would be easier to drop the database and re-run the migrations. Attached is a proposed documentation patch to suggest that. What do you think?