Opened 4 years ago

Last modified 4 years ago

#32344 closed New feature

Allow arbitrary `deconstructible` class properties to participate in migrations — at Initial Version

Reported by: Ryan Vinzent Owned by: nobody
Component: Migrations Version: dev
Severity: Normal Keywords: Migrations, ModelState
Cc: Simon Charette Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

In order to fully take advantage of a custom SchemaEditor class, I need to apply some model level configuration. This configuration can be implemented as a class property on the model, but during the migration, all non-Field class properties are disregarded in the dynamically constructed version of the model's state.

It would be nice if any serializable (or maybe only deconstructible) class property were also able to be included in the migration, so I could add something like this:

class MyPostgresModel(models.Model):
    postgres_options = PostgresOptions(...)

Currently, postgres_options in this case is not passed to the SchemaEditor.create_model() call during the migration, even if it is serializable. The usefulness of a custom SchemaEditor is hindered if it is unable to see this extra model configuration during migrations, as this is usually the only place that a SchemaEditor is invoked.

This could enable user-defined ModelState in migrations, and allow third-party database backends to more easily participate in the migrations framework.

Change History (0)

Note: See TracTickets for help on using tickets.
Back to Top