{"title":"Migrering av databaser","version":"6.0","locale":"sv","docname":"ref/contrib/postgres/operations","url":"/sv/6.0/ref/contrib/postgres/operations/","canonical":"https://djangodocs.dev/sv/6.0/ref/contrib/postgres/operations/","summary":"Alla dessa operationer är tillgängliga från modulen django.contrib.postgres.operations.","html":"<h1>Migrering av databaser<a class=\"heading-anchor\" href=\"#database-migration-operations\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Alla dessa <a class=\"reference internal\" href=\"/sv/6.0/ref/migration-operations/\"><span class=\"doc\">operationer</span></a> är tillgängliga från modulen <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>Skapa tillägg med hjälp av migreringar<a class=\"heading-anchor\" href=\"#creating-extension-using-migrations\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Du kan skapa ett PostgreSQL-tillägg i din databas med hjälp av en migreringsfil. Detta exempel skapar en hstore-förlängning, men samma principer gäller för andra tillägg.</p>\n<p>Ställ in hstore-tillägget i PostgreSQL före den första <code class=\"docutils literal notranslate\">CreateModel</code> eller <code class=\"docutils literal notranslate\">AddField</code> -operationen som involverar <a class=\"reference internal\" href=\"/sv/6.0/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> genom att lägga till en migrering med <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> -operationen. Till exempel:</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\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>HStoreExtension<span class=\"p\">(),</span> <span class=\"o\">...</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Operationen hoppar över att lägga till tillägget om det redan finns.</p>\n<p>För de flesta tillägg kräver detta en databasanvändare med superanvändarrättigheter. Om Django-databasanvändaren inte har lämpliga privilegier måste du skapa tillägget utanför Django-migreringar med en användare som har dem. I så fall ansluter du till din Django-databas och kör frågan <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\">Link to this heading</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>, <em class=\"sig-param\">hints<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.CreateExtension\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En `` Operation `` underklass som installerar en PostgreSQL-förlängning. För vanliga tillägg, använd en av de mer specifika underklasserna nedan.</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\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Detta är ett obligatoriskt argument. Namnet på det tillägg som ska installeras.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.CreateExtension.hints\">\n<span class=\"sig-name descname\">hints</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.CreateExtension.hints\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>The optional <code class=\"docutils literal notranslate\">hints</code> argument will be passed as <code class=\"docutils literal notranslate\">**hints</code> to the\n<a class=\"reference internal\" href=\"/sv/6.0/topics/db/multi-db/#allow_migrate\" title=\"allow_migrate\"><code class=\"xref py py-meth docutils literal notranslate\">allow_migrate()</code></a> method of database routers to assist them in\n<a class=\"reference internal\" href=\"/sv/6.0/topics/db/multi-db/#topics-db-multi-db-hints\"><span class=\"std std-ref\">making routing decisions</span></a>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"bloomextension\">\n<h2><code class=\"docutils literal notranslate\">BloomExtension</code><a class=\"heading-anchor\" href=\"#bloomextension\"><span class=\"visually-hidden\">Link to this heading</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.BloomExtension\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">BloomExtension</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">hints<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.BloomExtension\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Installerar tillägget <code class=\"docutils literal notranslate\">bloom</code>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.BloomExtension.hints\">\n<span class=\"sig-name descname\">hints</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.BloomExtension.hints\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>The optional <code class=\"docutils literal notranslate\">hints</code> argument will be passed as <code class=\"docutils literal notranslate\">**hints</code> to the\n<a class=\"reference internal\" href=\"/sv/6.0/topics/db/multi-db/#allow_migrate\" title=\"allow_migrate\"><code class=\"xref py py-meth docutils literal notranslate\">allow_migrate()</code></a> method of database routers to assist them in\n<a class=\"reference internal\" href=\"/sv/6.0/topics/db/multi-db/#topics-db-multi-db-hints\"><span class=\"std std-ref\">making routing decisions</span></a>.</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\">Link to this heading</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><span class=\"sig-paren\">(</span><em class=\"sig-param\">hints<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.BtreeGinExtension\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Installerar tillägget <code class=\"docutils literal notranslate\">btree_gin</code>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.BtreeGinExtension.hints\">\n<span class=\"sig-name descname\">hints</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.BtreeGinExtension.hints\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>The optional <code class=\"docutils literal notranslate\">hints</code> argument will be passed as <code class=\"docutils literal notranslate\">**hints</code> to the\n<a class=\"reference internal\" href=\"/sv/6.0/topics/db/multi-db/#allow_migrate\" title=\"allow_migrate\"><code class=\"xref py py-meth docutils literal notranslate\">allow_migrate()</code></a> method of database routers to assist them in\n<a class=\"reference internal\" href=\"/sv/6.0/topics/db/multi-db/#topics-db-multi-db-hints\"><span class=\"std std-ref\">making routing decisions</span></a>.</p>\n</dd></dl>\n\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\">Link to this heading</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><span class=\"sig-paren\">(</span><em class=\"sig-param\">hints<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.BtreeGistExtension\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Installerar tillägget <code class=\"docutils literal notranslate\">btree_gist</code>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.BtreeGistExtension.hints\">\n<span class=\"sig-name descname\">hints</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.BtreeGistExtension.hints\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>The optional <code class=\"docutils literal notranslate\">hints</code> argument will be passed as <code class=\"docutils literal notranslate\">**hints</code> to the\n<a class=\"reference internal\" href=\"/sv/6.0/topics/db/multi-db/#allow_migrate\" title=\"allow_migrate\"><code class=\"xref py py-meth docutils literal notranslate\">allow_migrate()</code></a> method of database routers to assist them in\n<a class=\"reference internal\" href=\"/sv/6.0/topics/db/multi-db/#topics-db-multi-db-hints\"><span class=\"std std-ref\">making routing decisions</span></a>.</p>\n</dd></dl>\n\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\">Link to this heading</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><span class=\"sig-paren\">(</span><em class=\"sig-param\">hints<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.CITextExtension\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Installerar tillägget <code class=\"docutils literal notranslate\">citext</code>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.CITextExtension.hints\">\n<span class=\"sig-name descname\">hints</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.CITextExtension.hints\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>The optional <code class=\"docutils literal notranslate\">hints</code> argument will be passed as <code class=\"docutils literal notranslate\">**hints</code> to the\n<a class=\"reference internal\" href=\"/sv/6.0/topics/db/multi-db/#allow_migrate\" title=\"allow_migrate\"><code class=\"xref py py-meth docutils literal notranslate\">allow_migrate()</code></a> method of database routers to assist them in\n<a class=\"reference internal\" href=\"/sv/6.0/topics/db/multi-db/#topics-db-multi-db-hints\"><span class=\"std std-ref\">making routing decisions</span></a>.</p>\n</dd></dl>\n\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\">Link to this heading</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><span class=\"sig-paren\">(</span><em class=\"sig-param\">hints<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.CryptoExtension\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Installerar tillägget <code class=\"docutils literal notranslate\">pgcrypto</code>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.CryptoExtension.hints\">\n<span class=\"sig-name descname\">hints</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.CryptoExtension.hints\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>The optional <code class=\"docutils literal notranslate\">hints</code> argument will be passed as <code class=\"docutils literal notranslate\">**hints</code> to the\n<a class=\"reference internal\" href=\"/sv/6.0/topics/db/multi-db/#allow_migrate\" title=\"allow_migrate\"><code class=\"xref py py-meth docutils literal notranslate\">allow_migrate()</code></a> method of database routers to assist them in\n<a class=\"reference internal\" href=\"/sv/6.0/topics/db/multi-db/#topics-db-multi-db-hints\"><span class=\"std std-ref\">making routing decisions</span></a>.</p>\n</dd></dl>\n\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\">Link to this heading</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><span class=\"sig-paren\">(</span><em class=\"sig-param\">hints<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.HStoreExtension\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Installerar tillägget <code class=\"docutils literal notranslate\">hstore</code> och konfigurerar även anslutningen för att tolka hstore-data för eventuell användning i efterföljande migreringar.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.HStoreExtension.hints\">\n<span class=\"sig-name descname\">hints</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.HStoreExtension.hints\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>The optional <code class=\"docutils literal notranslate\">hints</code> argument will be passed as <code class=\"docutils literal notranslate\">**hints</code> to the\n<a class=\"reference internal\" href=\"/sv/6.0/topics/db/multi-db/#allow_migrate\" title=\"allow_migrate\"><code class=\"xref py py-meth docutils literal notranslate\">allow_migrate()</code></a> method of database routers to assist them in\n<a class=\"reference internal\" href=\"/sv/6.0/topics/db/multi-db/#topics-db-multi-db-hints\"><span class=\"std std-ref\">making routing decisions</span></a>.</p>\n</dd></dl>\n\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\">Link to this heading</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><span class=\"sig-paren\">(</span><em class=\"sig-param\">hints<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.TrigramExtension\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Installerar tillägget <code class=\"docutils literal notranslate\">pg_trgm</code>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.TrigramExtension.hints\">\n<span class=\"sig-name descname\">hints</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.TrigramExtension.hints\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>The optional <code class=\"docutils literal notranslate\">hints</code> argument will be passed as <code class=\"docutils literal notranslate\">**hints</code> to the\n<a class=\"reference internal\" href=\"/sv/6.0/topics/db/multi-db/#allow_migrate\" title=\"allow_migrate\"><code class=\"xref py py-meth docutils literal notranslate\">allow_migrate()</code></a> method of database routers to assist them in\n<a class=\"reference internal\" href=\"/sv/6.0/topics/db/multi-db/#topics-db-multi-db-hints\"><span class=\"std std-ref\">making routing decisions</span></a>.</p>\n</dd></dl>\n\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\">Link to this heading</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><span class=\"sig-paren\">(</span><em class=\"sig-param\">hints<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.UnaccentExtension\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Installerar tillägget <code class=\"docutils literal notranslate\">unaccent</code>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.UnaccentExtension.hints\">\n<span class=\"sig-name descname\">hints</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.UnaccentExtension.hints\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"6.0\" role=\"note\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>The optional <code class=\"docutils literal notranslate\">hints</code> argument will be passed as <code class=\"docutils literal notranslate\">**hints</code> to the\n<a class=\"reference internal\" href=\"/sv/6.0/topics/db/multi-db/#allow_migrate\" title=\"allow_migrate\"><code class=\"xref py py-meth docutils literal notranslate\">allow_migrate()</code></a> method of database routers to assist them in\n<a class=\"reference internal\" href=\"/sv/6.0/topics/db/multi-db/#topics-db-multi-db-hints\"><span class=\"std std-ref\">making routing decisions</span></a>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"managing-collations-using-migrations\">\n<span id=\"manage-postgresql-collations\"></span><h2>Hantera kollationer med hjälp av migreringar<a class=\"heading-anchor\" href=\"#managing-collations-using-migrations\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Om du behöver filtrera eller beställa en kolumn med en viss kollationering som ditt operativsystem tillhandahåller men PostgreSQL inte gör det, kan du hantera kollationer i din databas med hjälp av en migreringsfil. Dessa kollationer kan sedan användas med parametern <code class=\"docutils literal notranslate\">db_collation</code> på <a class=\"reference internal\" href=\"/sv/6.0/ref/models/fields/#django.db.models.CharField\" title=\"django.db.models.CharField\"><code class=\"xref py py-class docutils literal notranslate\">CharField</code></a>, <a class=\"reference internal\" href=\"/sv/6.0/ref/models/fields/#django.db.models.TextField\" title=\"django.db.models.TextField\"><code class=\"xref py py-class docutils literal notranslate\">TextField</code></a>, och deras underklasser.</p>\n<p>Till exempel:, för att skapa en kollationering för tysk telefonkatalogbeställning:</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> CreateCollation\n\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        CreateCollation<span class=\"p\">(</span>\n            <span class=\"s2\">&quot;case_insensitive&quot;</span><span class=\"p\">,</span>\n            provider<span class=\"o\">=</span><span class=\"s2\">&quot;icu&quot;</span><span class=\"p\">,</span>\n            locale<span class=\"o\">=</span><span class=\"s2\">&quot;und-u-ks-level2&quot;</span><span class=\"p\">,</span>\n            deterministic<span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">,</span>\n        <span class=\"p\">),</span>\n        <span class=\"o\">...</span><span class=\"p\">,</span>\n    <span class=\"p\">]</span>\n</code></pre></div>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.CreateCollation\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">CreateCollation</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">name</em>, <em class=\"sig-param\">locale</em>, <em class=\"sig-param\"><span class=\"keyword-only-separator o\"><abbr title=\"Keyword-only parameters separator (PEP 3102)\">*</abbr></span></em>, <em class=\"sig-param\">provider<span class=\"o\">=</span><span class=\"default_value\">'libc'</span></em>, <em class=\"sig-param\">deterministic<span class=\"o\">=</span><span class=\"default_value\">True</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.CreateCollation\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Skapar en kollationering med de angivna <code class=\"docutils literal notranslate\">name</code>, <code class=\"docutils literal notranslate\">locale</code> och <code class=\"docutils literal notranslate\">provider</code>.</p>\n<p>Sätt parametern <code class=\"docutils literal notranslate\">deterministic</code> till <code class=\"docutils literal notranslate\">False</code> för att skapa en icke-deterministisk kollationering, t.ex. för skiftlägesokänslig filtrering.</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.RemoveCollation\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">RemoveCollation</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">name</em>, <em class=\"sig-param\">locale</em>, <em class=\"sig-param\"><span class=\"keyword-only-separator o\"><abbr title=\"Keyword-only parameters separator (PEP 3102)\">*</abbr></span></em>, <em class=\"sig-param\">provider<span class=\"o\">=</span><span class=\"default_value\">'libc'</span></em>, <em class=\"sig-param\">deterministic<span class=\"o\">=</span><span class=\"default_value\">True</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.RemoveCollation\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Tar bort de kollationer som heter <code class=\"docutils literal notranslate\">namn</code>.</p>\n<p>När den reverseras skapar detta en kollationering med de angivna argumenten <code class=\"docutils literal notranslate\">locale</code>, <code class=\"docutils literal notranslate\">provider</code> och <code class=\"docutils literal notranslate\">deterministic</code>. Därför krävs <code class=\"docutils literal notranslate\">locale</code> för att göra denna operation reversibel.</p>\n</dd></dl>\n\n</section>\n<section id=\"concurrent-index-operations\">\n<h2>Samtidiga indexoperationer<a class=\"heading-anchor\" href=\"#concurrent-index-operations\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>PostgreSQL stöder alternativet <code class=\"docutils literal notranslate\">CONCURRENTLY</code> till <code class=\"docutils literal notranslate\">CREATE INDEX</code> och <code class=\"docutils literal notranslate\">DROP INDEX</code> uttalanden för att lägga till och ta bort index utan att låsa ut skrivningar. Det här alternativet är användbart för att lägga till eller ta bort ett index i en live produktionsdatabas.</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.AddIndexConcurrently\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">AddIndexConcurrently</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">model_name</em>, <em class=\"sig-param\">index</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.AddIndexConcurrently\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Som <a class=\"reference internal\" href=\"/sv/6.0/ref/migration-operations/#django.db.migrations.operations.AddIndex\" title=\"django.db.migrations.operations.AddIndex\"><code class=\"xref py py-class docutils literal notranslate\">AddIndex</code></a>, men skapar ett index med alternativet <code class=\"docutils literal notranslate\">CONCURRENTLY</code>. Detta har några försiktighetsåtgärder att vara medveten om när du använder det här alternativet, se `` PostgreSQL-dokumentationen för att bygga index samtidigt &lt;<a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/\">https://www.postgresql.org/docs/current/</a> sql-createindex.html#SQL-CREATEINDEX-CONCURRENTLY&gt;`_.</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.RemoveIndexConcurrently\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">RemoveIndexConcurrently</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">model_name</em>, <em class=\"sig-param\">name</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.RemoveIndexConcurrently\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Som <a class=\"reference internal\" href=\"/sv/6.0/ref/migration-operations/#django.db.migrations.operations.RemoveIndex\" title=\"django.db.migrations.operations.RemoveIndex\"><code class=\"xref py py-class docutils literal notranslate\">RemoveIndex</code></a>, men tar bort indexet med alternativet <code class=\"docutils literal notranslate\">CONCURRENTLY</code>. Detta har några varningar att vara medvetna om när du använder det här alternativet, se <a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/sql-dropindex.html\">PostgreSQL-dokumentationen</a>.</p>\n</dd></dl>\n\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Alternativet <code class=\"docutils literal notranslate\">CONCURRENTLY</code> stöds inte inom en transaktion (se <span class=\"xref std std-ref\">non-atomic migration &lt;non-atomic-migrations&gt;`</span>).</p>\n</aside>\n</section>\n<section id=\"adding-constraints-without-enforcing-validation\">\n<h2>Lägga till begränsningar utan att tvinga fram validering<a class=\"heading-anchor\" href=\"#adding-constraints-without-enforcing-validation\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>PostgreSQL stöder alternativet `` INOT VALID`` med uttalandet `` ADD CONSTRAINT`` för att lägga till kontrollbegränsningar utan att genomdriva validering på befintliga rader. Det här alternativet är användbart om du vill hoppa över den potentiellt långa genomsökningen av tabellen för att verifiera att alla befintliga rader uppfyller begränsningen.</p>\n<p>Om du vill validera kontrollbegränsningar som skapats med alternativet <code class=\"docutils literal notranslate\">NOT VALID</code> vid en senare tidpunkt använder du operationen <a class=\"reference internal\" href=\"#django.contrib.postgres.operations.ValidateConstraint\" title=\"django.contrib.postgres.operations.ValidateConstraint\"><code class=\"xref py py-class docutils literal notranslate\">ValidateConstraint</code></a>.</p>\n<p>Se ”PostgreSQL-dokumentationen &lt;<a class=\"reference external\" href=\"https://www.postgresql.org/docs/current/\">https://www.postgresql.org/docs/current/</a> sql-altertable.html#SQL-ALTERTABLE-NOTES&gt;`__ för mer information.</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.AddConstraintNotValid\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">AddConstraintNotValid</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">model_name</em>, <em class=\"sig-param\">constraint</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.AddConstraintNotValid\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Som <a class=\"reference internal\" href=\"/sv/6.0/ref/migration-operations/#django.db.migrations.operations.AddConstraint\" title=\"django.db.migrations.operations.AddConstraint\"><code class=\"xref py py-class docutils literal notranslate\">AddConstraint</code></a>, men undviker att validera begränsningen på befintliga rader.</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.postgres.operations.ValidateConstraint\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ValidateConstraint</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">model_name</em>, <em class=\"sig-param\">name</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.postgres.operations.ValidateConstraint\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Skannar igenom tabellen och validerar den angivna kontrollbegränsningen på befintliga rader.</p>\n</dd></dl>\n\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>operationerna <code class=\"docutils literal notranslate\">AddConstraintNotValid</code> och <code class=\"docutils literal notranslate\">ValidateConstraint</code> bör utföras i två separata migreringar. Att utföra båda operationerna i samma atomiska migrering har samma effekt som <a class=\"reference internal\" href=\"/sv/6.0/ref/migration-operations/#django.db.migrations.operations.AddConstraint\" title=\"django.db.migrations.operations.AddConstraint\"><code class=\"xref py py-class docutils literal notranslate\">AddConstraint</code></a>, medan att utföra dem i en enda icke-atomisk migrering kan lämna din databas i ett inkonsekvent tillstånd om operationen <code class=\"docutils literal notranslate\">ValidateConstraint</code> misslyckas.</p>\n</aside>\n</section>","rootId":"database-migration-operations","toc":[{"title":"Skapa tillägg med hjälp av migreringar","anchor":"creating-extension-using-migrations","children":[]},{"title":"CreateExtension","anchor":"createextension","children":[]},{"title":"BloomExtension","anchor":"bloomextension","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":[]},{"title":"Hantera kollationer med hjälp av migreringar","anchor":"managing-collations-using-migrations","children":[]},{"title":"Samtidiga indexoperationer","anchor":"concurrent-index-operations","children":[]},{"title":"Lägga till begränsningar utan att tvinga fram validering","anchor":"adding-constraints-without-enforcing-validation","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API-referens","url":"/sv/6.0/ref/"},{"docname":"ref/contrib/index","title":"contrib paket","url":"/sv/6.0/ref/contrib/"},{"docname":"ref/contrib/postgres/index","title":"django.contrib.postgres","url":"/sv/6.0/ref/contrib/postgres/"}],"prev":{"docname":"ref/contrib/postgres/lookups","title":"PostgreSQL-specifika uppslagningar","url":"/sv/6.0/ref/contrib/postgres/lookups/"},"next":{"docname":"ref/contrib/postgres/search","title":"Fulltextsökning","url":"/sv/6.0/ref/contrib/postgres/search/"},"formats":{"html":"/sv/6.0/ref/contrib/postgres/operations/","markdown":"/sv/6.0/ref/contrib/postgres/operations.md","json":"/sv/6.0/ref/contrib/postgres/operations.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/ref/contrib/postgres/operations.txt","official":"https://docs.djangoproject.com/sv/6.0/ref/contrib/postgres/operations/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}