#27666 closed Cleanup/optimization (fixed)
Delay rendering of models in migration operations when possible
| Reported by: | Markus Holtermann | Owned by: | Markus Holtermann |
|---|---|---|---|
| Component: | Migrations | Version: | dev |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Accepted | |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description (last modified by )
As it turns out, when we delay the rendering of related models up to the point where it's necessary (just before RunPython, afaict), we can cut down migration time to a quarter and maybe more: https://github.com/MarkusH/django/commit/6b8280e0582d778944585e966404252c4994185e#commitcomment-19719252
PR: https://github.com/django/django/pull/7589
Given that 3rd party migration operations may need to enforce model rendering like we do for RunPython, we probably need to treat this as a backwards incompatible change, I suppose.
def database_forwards(self, app_label, schema_editor, from_state, to_state): if from_state.is_delayed and 'apps' in from_state.__dict__: del from_state.__dict__['apps'] # ...
Change History (7)
comment:1 by , 9 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:2 by , 9 years ago
| Triage Stage: | Unreviewed → Accepted |
|---|
comment:3 by , 9 years ago
| Description: | modified (diff) |
|---|
comment:4 by , 9 years ago
| Needs documentation: | unset |
|---|
comment:5 by , 9 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
In 45ded05: