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 :
from django.contrib.postgres.operations import HStoreExtension
class Migration(migrations.Migration):
...
operations = [
HStoreExtension(),
...
]
Pour la plupart des extensions, il est nécessaire que l’utilisateur de base de données possède les droits de superutilisateur. Si l’utilisateur de base de données Django ne possède pas les privilèges suffisants, il est alors nécessaire de créer l’extension en dehors des migrations Django avec un utilisateur qui possède ces droits. 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”
Operationqui installe une extension PostgreSQL. Pour les extensions courantes, utilisez l’une des sous-classes plus spécifiques ci-dessous.- nameLien vers cette définition
Ce paramètre est obligatoire. Le nom de l’extension à installer.
BloomExtensionLien vers cette rubrique
- class BloomExtensionLien vers cette définition
-
Installe l’extension
bloom.
BtreeGinExtensionLien vers cette rubrique
- class BtreeGinExtensionLien vers cette définition
Installe l’extension
btree_gin.
BtreeGistExtensionLien vers cette rubrique
- class BtreeGistExtensionLien vers cette définition
Installe l’extension
btree_gist.
CITextExtensionLien vers cette rubrique
- class CITextExtensionLien vers cette définition
Installe l’extension
citext.
CryptoExtensionLien vers cette rubrique
- class CryptoExtensionLien vers cette définition
Installe l’extension
pgcrypto.
HStoreExtensionLien vers cette rubrique
- class HStoreExtensionLien vers cette définition
Installe l’extension
hstoreet 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.
Opérations d’index concurrentesLien vers cette rubrique
PostgreSQL prend en charge l’option CONCURRENTLY pour les instructions CREATE INDEX et DROP INDEX pour ajouter et supprimer des index sans verrouiller les écritures. Cette option est utile pour l’ajout ou la suppression d’index dans une base de données active en production.
- class AddIndexConcurrently(model_name, index)Lien vers cette définition
Comme
AddIndex, mais crée un index avec l’optionCONCURRENTLY. Il existe quelques mises en garde à respecter quand on utilise cette option, lisez la documentation PostgreSQL sur la construction concurrente d’index.
- class RemoveIndexConcurrently(model_name, name)Lien vers cette définition
Comme
RemoveIndex, mais supprime l’index avec l’optionCONCURRENTLY. Il existe quelques mises en garde à respecter quand on utilise cette option, lisez la documentation PostgreSQL.