{"title":"Migrering av databaser","version":"6.1","locale":"sv","docname":"ref/contrib/postgres/operations","url":"/sv/6.1/ref/contrib/postgres/operations/","canonical":"https://djangodocs.dev/sv/6.1/ref/contrib/postgres/operations/","summary":"Alla dessa operationer är tillgängliga från modulen django.contrib.postgres.operations . Skapa tillägg med hjälp av migreringar Link to this heading # Du kan skapa…","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.1/ref/migration-operations/\"><span class=\"doc\">operationer</span></a> är tillgängliga från modulen <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.operations</span></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\"><span class=\"pre\">CreateModel</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">AddField</span></code> -operationen som involverar <a class=\"reference internal\" href=\"/sv/6.1/ref/contrib/postgres/fields/#django.contrib.postgres.fields.HStoreField\" title=\"django.contrib.postgres.fields.HStoreField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HStoreField</span></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\"><span class=\"pre\">HStoreExtension</span></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=\"w\"> </span><span class=\"nn\">django.contrib.postgres.operations</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">HStoreExtension</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Migration</span><span class=\"p\">(</span><span class=\"n\">migrations</span><span class=\"o\">.</span><span class=\"n\">Migration</span><span class=\"p\">):</span>\n    <span class=\"o\">...</span>\n\n    <span class=\"n\">operations</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"n\">HStoreExtension</span><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\"><span class=\"pre\">CREATE</span> <span class=\"pre\">EXTENSION</span> <span class=\"pre\">IF</span> <span class=\"pre\">NOT</span> <span class=\"pre\">EXISTS</span> <span class=\"pre\">hstore;</span></code>.</p>\n</section>\n<section id=\"createextension\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">CreateExtension</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">CreateExtension</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">name</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">hints</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></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\"><span class=\"pre\">name</span></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\"><span class=\"pre\">hints</span></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\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>The optional <code class=\"docutils literal notranslate\"><span class=\"pre\">hints</span></code> argument will be passed as <code class=\"docutils literal notranslate\"><span class=\"pre\">**hints</span></code> to the\n<a class=\"reference internal\" href=\"/sv/6.1/topics/db/multi-db/#allow_migrate\" title=\"allow_migrate\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">allow_migrate()</span></code></a> method of database routers to assist them in\n<a class=\"reference internal\" href=\"/sv/6.1/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\"><span class=\"pre\">BloomExtension</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BloomExtension</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">hints</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></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\"><span class=\"pre\">bloom</span></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\"><span class=\"pre\">hints</span></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\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>The optional <code class=\"docutils literal notranslate\"><span class=\"pre\">hints</span></code> argument will be passed as <code class=\"docutils literal notranslate\"><span class=\"pre\">**hints</span></code> to the\n<a class=\"reference internal\" href=\"/sv/6.1/topics/db/multi-db/#allow_migrate\" title=\"allow_migrate\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">allow_migrate()</span></code></a> method of database routers to assist them in\n<a class=\"reference internal\" href=\"/sv/6.1/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\"><span class=\"pre\">BtreeGinExtension</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BtreeGinExtension</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">hints</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></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\"><span class=\"pre\">btree_gin</span></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\"><span class=\"pre\">hints</span></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\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>The optional <code class=\"docutils literal notranslate\"><span class=\"pre\">hints</span></code> argument will be passed as <code class=\"docutils literal notranslate\"><span class=\"pre\">**hints</span></code> to the\n<a class=\"reference internal\" href=\"/sv/6.1/topics/db/multi-db/#allow_migrate\" title=\"allow_migrate\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">allow_migrate()</span></code></a> method of database routers to assist them in\n<a class=\"reference internal\" href=\"/sv/6.1/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\"><span class=\"pre\">BtreeGistExtension</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BtreeGistExtension</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">hints</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></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\"><span class=\"pre\">btree_gist</span></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\"><span class=\"pre\">hints</span></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\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>The optional <code class=\"docutils literal notranslate\"><span class=\"pre\">hints</span></code> argument will be passed as <code class=\"docutils literal notranslate\"><span class=\"pre\">**hints</span></code> to the\n<a class=\"reference internal\" href=\"/sv/6.1/topics/db/multi-db/#allow_migrate\" title=\"allow_migrate\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">allow_migrate()</span></code></a> method of database routers to assist them in\n<a class=\"reference internal\" href=\"/sv/6.1/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\"><span class=\"pre\">CITextExtension</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">CITextExtension</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">hints</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></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\"><span class=\"pre\">citext</span></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\"><span class=\"pre\">hints</span></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\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>The optional <code class=\"docutils literal notranslate\"><span class=\"pre\">hints</span></code> argument will be passed as <code class=\"docutils literal notranslate\"><span class=\"pre\">**hints</span></code> to the\n<a class=\"reference internal\" href=\"/sv/6.1/topics/db/multi-db/#allow_migrate\" title=\"allow_migrate\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">allow_migrate()</span></code></a> method of database routers to assist them in\n<a class=\"reference internal\" href=\"/sv/6.1/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\"><span class=\"pre\">CryptoExtension</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">CryptoExtension</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">hints</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></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\"><span class=\"pre\">pgcrypto</span></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\"><span class=\"pre\">hints</span></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\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>The optional <code class=\"docutils literal notranslate\"><span class=\"pre\">hints</span></code> argument will be passed as <code class=\"docutils literal notranslate\"><span class=\"pre\">**hints</span></code> to the\n<a class=\"reference internal\" href=\"/sv/6.1/topics/db/multi-db/#allow_migrate\" title=\"allow_migrate\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">allow_migrate()</span></code></a> method of database routers to assist them in\n<a class=\"reference internal\" href=\"/sv/6.1/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\"><span class=\"pre\">HStoreExtension</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">HStoreExtension</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">hints</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></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\"><span class=\"pre\">hstore</span></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\"><span class=\"pre\">hints</span></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\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>The optional <code class=\"docutils literal notranslate\"><span class=\"pre\">hints</span></code> argument will be passed as <code class=\"docutils literal notranslate\"><span class=\"pre\">**hints</span></code> to the\n<a class=\"reference internal\" href=\"/sv/6.1/topics/db/multi-db/#allow_migrate\" title=\"allow_migrate\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">allow_migrate()</span></code></a> method of database routers to assist them in\n<a class=\"reference internal\" href=\"/sv/6.1/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\"><span class=\"pre\">TrigramExtension</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TrigramExtension</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">hints</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></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\"><span class=\"pre\">pg_trgm</span></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\"><span class=\"pre\">hints</span></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\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>The optional <code class=\"docutils literal notranslate\"><span class=\"pre\">hints</span></code> argument will be passed as <code class=\"docutils literal notranslate\"><span class=\"pre\">**hints</span></code> to the\n<a class=\"reference internal\" href=\"/sv/6.1/topics/db/multi-db/#allow_migrate\" title=\"allow_migrate\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">allow_migrate()</span></code></a> method of database routers to assist them in\n<a class=\"reference internal\" href=\"/sv/6.1/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\"><span class=\"pre\">UnaccentExtension</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">UnaccentExtension</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">hints</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></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\"><span class=\"pre\">unaccent</span></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\"><span class=\"pre\">hints</span></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\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>The optional <code class=\"docutils literal notranslate\"><span class=\"pre\">hints</span></code> argument will be passed as <code class=\"docutils literal notranslate\"><span class=\"pre\">**hints</span></code> to the\n<a class=\"reference internal\" href=\"/sv/6.1/topics/db/multi-db/#allow_migrate\" title=\"allow_migrate\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">allow_migrate()</span></code></a> method of database routers to assist them in\n<a class=\"reference internal\" href=\"/sv/6.1/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\"><span class=\"pre\">db_collation</span></code> på <a class=\"reference internal\" href=\"/sv/6.1/ref/models/fields/#django.db.models.CharField\" title=\"django.db.models.CharField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CharField</span></code></a>, <a class=\"reference internal\" href=\"/sv/6.1/ref/models/fields/#django.db.models.TextField\" title=\"django.db.models.TextField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TextField</span></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=\"w\"> </span><span class=\"nn\">django.contrib.postgres.operations</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">CreateCollation</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Migration</span><span class=\"p\">(</span><span class=\"n\">migrations</span><span class=\"o\">.</span><span class=\"n\">Migration</span><span class=\"p\">):</span>\n    <span class=\"o\">...</span>\n\n    <span class=\"n\">operations</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n        <span class=\"n\">CreateCollation</span><span class=\"p\">(</span>\n            <span class=\"s2\">&quot;case_insensitive&quot;</span><span class=\"p\">,</span>\n            <span class=\"n\">provider</span><span class=\"o\">=</span><span class=\"s2\">&quot;icu&quot;</span><span class=\"p\">,</span>\n            <span class=\"n\">locale</span><span class=\"o\">=</span><span class=\"s2\">&quot;und-u-ks-level2&quot;</span><span class=\"p\">,</span>\n            <span class=\"n\">deterministic</span><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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">CreateCollation</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">name</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">locale</span></span></em>, <em class=\"sig-param\"><span class=\"keyword-only-separator o\"><abbr title=\"Keyword-only parameters separator (PEP 3102)\"><span class=\"pre\">*</span></abbr></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">provider</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'libc'</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">deterministic</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">True</span></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\"><span class=\"pre\">name</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">locale</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">provider</span></code>.</p>\n<p>Sätt parametern <code class=\"docutils literal notranslate\"><span class=\"pre\">deterministic</span></code> till <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">RemoveCollation</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">name</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">locale</span></span></em>, <em class=\"sig-param\"><span class=\"keyword-only-separator o\"><abbr title=\"Keyword-only parameters separator (PEP 3102)\"><span class=\"pre\">*</span></abbr></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">provider</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'libc'</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">deterministic</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">True</span></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\"><span class=\"pre\">namn</span></code>.</p>\n<p>När den reverseras skapar detta en kollationering med de angivna argumenten <code class=\"docutils literal notranslate\"><span class=\"pre\">locale</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">provider</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">deterministic</span></code>. Därför krävs <code class=\"docutils literal notranslate\"><span class=\"pre\">locale</span></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\"><span class=\"pre\">CONCURRENTLY</span></code> till <code class=\"docutils literal notranslate\"><span class=\"pre\">CREATE</span> <span class=\"pre\">INDEX</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">DROP</span> <span class=\"pre\">INDEX</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">AddIndexConcurrently</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model_name</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">index</span></span></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.1/ref/migration-operations/#django.db.migrations.operations.AddIndex\" title=\"django.db.migrations.operations.AddIndex\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AddIndex</span></code></a>, men skapar ett index med alternativet <code class=\"docutils literal notranslate\"><span class=\"pre\">CONCURRENTLY</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">RemoveIndexConcurrently</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model_name</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">name</span></span></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.1/ref/migration-operations/#django.db.migrations.operations.RemoveIndex\" title=\"django.db.migrations.operations.RemoveIndex\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RemoveIndex</span></code></a>, men tar bort indexet med alternativet <code class=\"docutils literal notranslate\"><span class=\"pre\">CONCURRENTLY</span></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\"><span class=\"pre\">CONCURRENTLY</span></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\"><span class=\"pre\">NOT</span> <span class=\"pre\">VALID</span></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\"><span class=\"pre\">ValidateConstraint</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">AddConstraintNotValid</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model_name</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">constraint</span></span></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.1/ref/migration-operations/#django.db.migrations.operations.AddConstraint\" title=\"django.db.migrations.operations.AddConstraint\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AddConstraint</span></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\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ValidateConstraint</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model_name</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">name</span></span></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\"><span class=\"pre\">AddConstraintNotValid</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">ValidateConstraint</span></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.1/ref/migration-operations/#django.db.migrations.operations.AddConstraint\" title=\"django.db.migrations.operations.AddConstraint\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AddConstraint</span></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\"><span class=\"pre\">ValidateConstraint</span></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.1/ref/"},{"docname":"ref/contrib/index","title":"contrib paket","url":"/sv/6.1/ref/contrib/"},{"docname":"ref/contrib/postgres/index","title":"django.contrib.postgres","url":"/sv/6.1/ref/contrib/postgres/"}],"prev":{"docname":"ref/contrib/postgres/lookups","title":"PostgreSQL-specifika uppslagningar","url":"/sv/6.1/ref/contrib/postgres/lookups/"},"next":{"docname":"ref/contrib/postgres/search","title":"Fulltextsökning","url":"/sv/6.1/ref/contrib/postgres/search/"},"formats":{"html":"/sv/6.1/ref/contrib/postgres/operations/","markdown":"/sv/6.1/ref/contrib/postgres/operations.md","json":"/sv/6.1/ref/contrib/postgres/operations.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/ref/contrib/postgres/operations.txt","official":"https://docs.djangoproject.com/sv/6.1/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"]}