{"title":"Opérations de migration de base de données","version":"2.2","locale":"fr","docname":"ref/contrib/postgres/operations","url":"/fr/2.2/ref/contrib/postgres/operations/","canonical":"https://djangodocs.dev/fr/2.2/ref/contrib/postgres/operations/","summary":"Toutes ces opérations sont disponibles dans le module django.contrib.postgres.operations.","html":"<h1>Opérations de migration de base de données<a class=\"heading-anchor\" href=\"#database-migration-operations\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Toutes ces <a class=\"reference internal\" href=\"/fr/2.2/ref/migration-operations/\"><span class=\"doc\">opérations</span></a> sont disponibles dans le module <code class=\"docutils literal notranslate\">django.contrib.postgres.operations</code>.</p>\n<section id=\"creating-extension-using-migrations\">\n<span id=\"create-postgresql-extensions\"></span><h2>Création d’extension à l’aide des migrations<a class=\"heading-anchor\" href=\"#creating-extension-using-migrations\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>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.</p>\n<p>Configurer l’extension hstore dans PostgreSQL avant la première opération <code class=\"docutils literal notranslate\">CreateModel</code> ou <code class=\"docutils literal notranslate\">AddField</code> qui concerne un champ <a class=\"reference internal\" href=\"/fr/2.2/ref/contrib/postgres/fields/#django.contrib.postgres.fields.HStoreField\" title=\"django.contrib.postgres.fields.HStoreField\"><code class=\"xref py py-class docutils literal notranslate\">HStoreField</code></a> en ajoutant une migration comprenant l’opération <a class=\"reference internal\" href=\"#django.contrib.postgres.operations.HStoreExtension\" title=\"django.contrib.postgres.operations.HStoreExtension\"><code class=\"xref py py-class docutils literal notranslate\">HStoreExtension</code></a>. Par exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">django.contrib.postgres.operations</span> <span class=\"kn\">import</span> HStoreExtension\n\n<span class=\"k\">class</span> <span class=\"nc\">Migration</span><span class=\"p\">(</span>migrations<span class=\"o\">.</span>Migration<span class=\"p\">):</span>\n    <span class=\"o\">...</span>\n\n    operations <span class=\"o\">=</span> <span class=\"p\">[</span>\n        HStoreExtension<span class=\"p\">(),</span>\n        <span class=\"o\">...</span>\n    <span class=\"p\">]</span>\n</code></pre></div>\n<p>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 <code class=\"docutils literal notranslate\">CREATE EXTENSION IF NOT EXISTS hstore;</code>.</p>\n</section>\n<section id=\"createextension\">\n<h2><code class=\"docutils literal notranslate\">CreateExtension</code><a class=\"heading-anchor\" href=\"#createextension\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.CreateExtension\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">CreateExtension</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">name</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.CreateExtension\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Une sous-classe d”<code class=\"docutils literal notranslate\">Operation</code> qui installe des extensions PostgreSQL.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.CreateExtension.name\">\n<span class=\"sig-name descname\">name</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.CreateExtension.name\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ce paramètre est obligatoire. Le nom de l’extension à installer.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"btreeginextension\">\n<h2><code class=\"docutils literal notranslate\">BtreeGinExtension</code><a class=\"heading-anchor\" href=\"#btreeginextension\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.BtreeGinExtension\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">BtreeGinExtension</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.BtreeGinExtension\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Installe l’extension <code class=\"docutils literal notranslate\">btree_gin</code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"btreegistextension\">\n<h2><code class=\"docutils literal notranslate\">BtreeGistExtension</code><a class=\"heading-anchor\" href=\"#btreegistextension\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.BtreeGistExtension\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">BtreeGistExtension</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.BtreeGistExtension\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Installe l’extension <code class=\"docutils literal notranslate\">btree_gist</code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"citextextension\">\n<h2><code class=\"docutils literal notranslate\">CITextExtension</code><a class=\"heading-anchor\" href=\"#citextextension\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.CITextExtension\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">CITextExtension</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.CITextExtension\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Installe l’extension <code class=\"docutils literal notranslate\">citext</code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"cryptoextension\">\n<h2><code class=\"docutils literal notranslate\">CryptoExtension</code><a class=\"heading-anchor\" href=\"#cryptoextension\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.CryptoExtension\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">CryptoExtension</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.CryptoExtension\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Installe l’extension <code class=\"docutils literal notranslate\">pgcrypto</code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"hstoreextension\">\n<h2><code class=\"docutils literal notranslate\">HStoreExtension</code><a class=\"heading-anchor\" href=\"#hstoreextension\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.HStoreExtension\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">HStoreExtension</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.HStoreExtension\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Installe l’extension <code class=\"docutils literal notranslate\">hstore</code> et configure également la connexion afin d’interpréter les données hstore pour un usage possible dans les migrations suivantes.</p>\n</dd></dl>\n\n</section>\n<section id=\"trigramextension\">\n<h2><code class=\"docutils literal notranslate\">TrigramExtension</code><a class=\"heading-anchor\" href=\"#trigramextension\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.TrigramExtension\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">TrigramExtension</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.TrigramExtension\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Installe l’extension <code class=\"docutils literal notranslate\">pg_trgm</code>.</p>\n</dd></dl>\n\n</section>\n<section id=\"unaccentextension\">\n<h2><code class=\"docutils literal notranslate\">UnaccentExtension</code><a class=\"heading-anchor\" href=\"#unaccentextension\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.UnaccentExtension\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">UnaccentExtension</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.UnaccentExtension\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Installe l’extension <code class=\"docutils literal notranslate\">unaccent</code>.</p>\n</dd></dl>\n\n</section>","rootId":"database-migration-operations","toc":[{"title":"Création d’extension à l’aide des migrations","anchor":"creating-extension-using-migrations","children":[]},{"title":"CreateExtension","anchor":"createextension","children":[]},{"title":"BtreeGinExtension","anchor":"btreeginextension","children":[]},{"title":"BtreeGistExtension","anchor":"btreegistextension","children":[]},{"title":"CITextExtension","anchor":"citextextension","children":[]},{"title":"CryptoExtension","anchor":"cryptoextension","children":[]},{"title":"HStoreExtension","anchor":"hstoreextension","children":[]},{"title":"TrigramExtension","anchor":"trigramextension","children":[]},{"title":"UnaccentExtension","anchor":"unaccentextension","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"Référence de l’API","url":"/fr/2.2/ref/"},{"docname":"ref/contrib/index","title":"Paquets contrib","url":"/fr/2.2/ref/contrib/"},{"docname":"ref/contrib/postgres/index","title":"django.contrib.postgres","url":"/fr/2.2/ref/contrib/postgres/"}],"prev":{"docname":"ref/contrib/postgres/lookups","title":"Recherches spécifiques à PostgreSQL","url":"/fr/2.2/ref/contrib/postgres/lookups/"},"next":{"docname":"ref/contrib/postgres/search","title":"Recherche plein texte","url":"/fr/2.2/ref/contrib/postgres/search/"},"formats":{"html":"/fr/2.2/ref/contrib/postgres/operations/","markdown":"/fr/2.2/ref/contrib/postgres/operations.md","json":"/fr/2.2/ref/contrib/postgres/operations.json"},"source":"https://github.com/django/django/blob/stable/2.2.x/docs/ref/contrib/postgres/operations.txt","official":"https://docs.djangoproject.com/fr/2.2/ref/contrib/postgres/operations/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","zh-hans","fr","ja","id","pt-br","ko","es","el","pl"]}