Opened 14 months ago
Last modified 14 months ago
#34843 closed New feature
Feature request: Support postgres table storage options — at Initial Version
Reported by: | Anton Shutik | Owned by: | nobody |
---|---|---|---|
Component: | Migrations | Version: | 3.2 |
Severity: | Normal | Keywords: | postgres, autovacuum, storage options, django migrations |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
There is a list of storage options (https://www.postgresql.org/docs/current/sql-createtable.html#SQL-CREATETABLE-STORAGE-PARAMETERS) that can be applied when creating a table in postgres database. So, since django manages database schema, it would be nice to extend it to support these storage options.
It might look like:
class MyModel(db.Models): # fields go here class Meta: storage_options = { "autovacuum_vacuum_scale_factor": 0.01, "autovacuum_vacuum_threshold": 1000 }
and that would produce migration which eventually will run sql like this:
CREATE TABLE mymodel WITH (autovacuum_vacuum_scale_factor = 0.01, autovacuum_vacuum_threshold = 1000);
For now it could be done with RunSQL(sql='ALTER TABLE .... WITH (...);')
migration, but it would be better to have the settings on the model class itself for better visibility and managed by django.
What do you think ?