Opened 12 months ago

Last modified 12 months ago

#34843 closed New feature

Feature request: Support postgres table storage options — at Version 2

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 (last modified by Anton Shutik)

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(models.Model):
  
    #  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/ALTER 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 ?

Change History (2)

comment:1 by Anton Shutik, 12 months ago

Description: modified (diff)

comment:2 by Anton Shutik, 12 months ago

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