1
0
mirror of https://github.com/django/django.git synced 2025-10-24 06:06:09 +00:00

Fixed #27355 -- Added “Creating extension using migrations” docs.

This commit is contained in:
ntuckovic
2016-11-05 14:18:11 +01:00
committed by Tim Graham
parent e744c7e459
commit 4de8aaf7ff
2 changed files with 33 additions and 21 deletions

View File

@@ -5,6 +5,37 @@ Database migration operations
All of these :doc:`operations </ref/migration-operations>` are available from
the ``django.contrib.postgres.operations`` module.
.. _create-postgresql-extensions:
Creating extension using migrations
===================================
You can create a PostgreSQL extension in your database using a migration file.
This example creates an hstore extension, but the same principles apply for
other extensions.
Set up the hstore extension in PostgreSQL before the first ``CreateModel``
or ``AddField`` operation that involves
:class:`~django.contrib.postgres.fields.HStoreField` by adding a migration with
the :class:`~django.contrib.postgres.operations.HStoreExtension` operation.
For example::
from django.contrib.postgres.operations import HStoreExtension
class Migration(migrations.Migration):
...
operations = [
HStoreExtension(),
...
]
Creating the extension requires a database user with superuser privileges.
If the Django database user doesn't have superuser privileges, you'll have
to create the extension outside of Django migrations with a user that has
the appropriate privileges. In that case, connect to your Django database and
run the query ``CREATE EXTENSION IF NOT EXISTS hstore;``.
.. currentmodule:: django.contrib.postgres.operations
``CreateExtension``