summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorntuckovic <nikola.tuckovic@styria.hr>2016-11-05 14:18:11 +0100
committerTim Graham <timograham@gmail.com>2016-12-08 13:15:21 -0500
commit4de8aaf7ffc91b91cbb70e9db406abe9b160575a (patch)
tree221472f964aecb87c210137cb2185f7be39d24bf /docs
parente744c7e459bae0fbb656c70f368c7183fd7a6013 (diff)
Fixed #27355 -- Added “Creating extension using migrations” docs.
Diffstat (limited to 'docs')
-rw-r--r--docs/ref/contrib/postgres/fields.txt23
-rw-r--r--docs/ref/contrib/postgres/operations.txt31
2 files changed, 33 insertions, 21 deletions
diff --git a/docs/ref/contrib/postgres/fields.txt b/docs/ref/contrib/postgres/fields.txt
index 93f14fcca0..7c756655ce 100644
--- a/docs/ref/contrib/postgres/fields.txt
+++ b/docs/ref/contrib/postgres/fields.txt
@@ -281,27 +281,8 @@ A more useful index is a ``GIN`` index, which you should create using a
To use this field, you'll need to:
1. Add ``'django.contrib.postgres'`` in your :setting:`INSTALLED_APPS`.
- 2. Setup the hstore extension in PostgreSQL before the first ``CreateModel``
- or ``AddField`` operation 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;``
+ 2. :ref:`Setup the hstore extension <create-postgresql-extensions>` in
+ PostgreSQL.
You'll see an error like ``can't adapt type 'dict'`` if you skip the first
step, or ``type "hstore" does not exist`` if you skip the second.
diff --git a/docs/ref/contrib/postgres/operations.txt b/docs/ref/contrib/postgres/operations.txt
index 4dcc85105f..eecac388a6 100644
--- a/docs/ref/contrib/postgres/operations.txt
+++ b/docs/ref/contrib/postgres/operations.txt
@@ -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``