#34843: Feature request: Support postgres table storage options
-------------------------------------+-------------------------------------
Reporter: Anton-Shutik | Owner: nobody
Type: New feature | Status: new
Component: Migrations | Version: 3.2
Severity: Normal | Resolution:
Keywords: postgres, | Triage Stage:
autovacuum, storage options, | Unreviewed
django migrations |
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Description changed by Anton-Shutik:
Old 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(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 ?
New 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(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='CREATE/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 ?
--
--
Ticket URL: <https://code.djangoproject.com/ticket/34843#comment:3>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/0107018a995788dd-19564259-08ae-4ef4-9963-ccbfef284df1-000000%40eu-central-1.amazonses.com.