diff --git a/docs/ref/contrib/postgres/fields.txt b/docs/ref/contrib/postgres/fields.txt
index b7938dcb2f..29e4013f68 100644
--- a/docs/ref/contrib/postgres/fields.txt
+++ b/docs/ref/contrib/postgres/fields.txt
@@ -261,27 +261,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 cc2cbe7c51..0f077f52b3 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``