Opérations de migration de base de donnéesLien vers cette rubrique

Toutes ces opérations sont disponibles dans le module django.contrib.postgres.operations.

Création d’extension à l’aide des migrationsLien vers cette rubrique

Il est possible de créer une extension de base de données PostgreSQL en utilisant un fichier de migration. Cet exemple crée une extension hstore, mais le même principe est applicable aux autres extensions.

Configurer l’extension hstore dans PostgreSQL avant la première opération CreateModel ou AddField qui concerne un champ HStoreField en ajoutant une migration comprenant l’opération HStoreExtension. Par exemple :

Code
from django.contrib.postgres.operations import HStoreExtension

class Migration(migrations.Migration):
    ...

    operations = [
        HStoreExtension(),
        ...
    ]

La création de l’extension exige un utilisateur de base de données possédant les droits de superutilisateur. Si l’utilisateur de base de données Django ne possède pas ces privilèges, il est alors nécessaire de créer l’extension en dehors des migrations Django avec un utilisateur qui possède les droits requis. Dans ce cas, connectez-vous à la base de données et lancez la requête CREATE EXTENSION IF NOT EXISTS hstore;.

CreateExtensionLien vers cette rubrique

class CreateExtension(name)Lien vers cette définition

Une sous-classe d”Operation qui installe des extensions PostgreSQL.

nameLien vers cette définition

Ce paramètre est obligatoire. Le nom de l’extension à installer.

BtreeGinExtensionLien vers cette rubrique

class BtreeGinExtensionLien vers cette définition

Installe l’extension btree_gin.

CITextExtensionLien vers cette rubrique

class CITextExtensionLien vers cette définition

Installe l’extension citext.

HStoreExtensionLien vers cette rubrique

class HStoreExtensionLien vers cette définition

Installe l’extension hstore et configure également la connexion afin d’interpréter les données hstore pour un usage possible dans les migrations suivantes.

TrigramExtensionLien vers cette rubrique

class TrigramExtensionLien vers cette définition

Installe l’extension pg_trgm.

UnaccentExtensionLien vers cette rubrique

class UnaccentExtensionLien vers cette définition

Installe l’extension unaccent.