Opened 7 years ago

Last modified 9 days ago

#29898 assigned Cleanup/optimization

Adapt schema editors to operate from model states instead of fake rendered models — at Version 14

Reported by: Simon Charette Owned by:
Component: Migrations Version: dev
Severity: Normal Keywords:
Cc: Markus Holtermann, Simon Charette, Adam Johnson, David Wobrock, Suzannah Cooper 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 Suzannah Cooper)

Rendering models meant to be passed to the schema editor during the migrate phase is the main source of slowdown during the migrate phase of a project.

Adapting schema editors to be able to perform the same operations with model states would be way more efficient as model rendering could always be delayed until it's a necessity such during the application of RunPython operations.

Ref #22608.

Initial work by Markus Holtermann here https://github.com/django/django/compare/main...MarkusH:schemaeditor-modelstate

Change History (14)

comment:1 by Adam Johnson, 6 years ago

Cc: Adam Johnson added

comment:2 by Sanskar Jaiswal, 6 years ago

Hello everyone. This is the proposal that I submitted for GSoC, which unfortunately wasn't accepted. If it's fine, I would still like to work on this ticket. It would be amazing if I could get the above mentioned proposal reviewed and was given feedback, so that I know what to change and how to proceed.

Cheers

comment:3 by Manav Agarwal, 5 years ago

Owner: changed from nobody to Manav Agarwal
Status: newassigned

comment:4 by Mariusz Felisiak <felisiak.mariusz@…>, 5 years ago

In d718d990:

Refs #29898 -- Moved django.db.migrations.operations.utils to django.db.migrations.utils.

comment:5 by Mariusz Felisiak <felisiak.mariusz@…>, 5 years ago

In 503ee414:

Refs #29898 -- Moved state_forwards()'s logic from migration operations to ProjectState.

Thanks Simon Charette and Markus Holtermann for reviews.

comment:6 by David Wobrock, 5 years ago

Cc: David Wobrock added

comment:7 by Carlton Gibson <carlton@…>, 5 years ago

In 54a30a7:

Refs #29898 -- Changed ProjectState.real_apps to set.

comment:8 by Mariusz Felisiak <felisiak.mariusz@…>, 5 years ago

In 3e6a3e88:

Refs #29898 -- Refactored out ProjectState.resolve_model_relations()/resolve_model_field_relations() hooks.

comment:9 by Mariusz Felisiak, 5 years ago

Patch needs improvement: unset
Triage Stage: AcceptedReady for checkin

comment:10 by Mariusz Felisiak <felisiak.mariusz@…>, 5 years ago

In 196a99da:

Refs #29898 -- Made ProjectState encapsulate alterations in relations registry.

Thanks Simon Charette and Chris Jerdonek for reviews.

Co-authored-by: Mariusz Felisiak <felisiak.mariusz@…>

comment:11 by Mariusz Felisiak, 5 years ago

Has patch: unset
Triage Stage: Ready for checkinAccepted

comment:12 by GitHub <noreply@…>, 5 years ago

In fa1d7ba5:

Refs #29898 -- Changed fields in ProjectState's relation registry to dict.

comment:13 by Mariusz Felisiak, 2 years ago

Owner: Manav Agarwal removed
Status: assignednew

comment:14 by Suzannah Cooper, 2 weeks ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top