{"title":"SchemaEditor","version":"6.0","locale":"sv","docname":"ref/schema-editor","url":"/sv/6.0/ref/schema-editor/","canonical":"https://djangodocs.dev/sv/6.0/ref/schema-editor/","summary":"class BaseDatabaseSchemaEditor Link to this definition # Djangos migreringssystem är uppdelat i två delar; logiken för att beräkna och lagra vilka operationer som…","html":"<span id=\"schemaeditor\"></span><h1><code class=\"docutils literal notranslate\"><span class=\"pre\">SchemaEditor</span></code><a class=\"heading-anchor\" href=\"#module-django.db.backends.base.schema\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.backends.base.schema.BaseDatabaseSchemaEditor\">\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\">BaseDatabaseSchemaEditor</span></span><a class=\"heading-anchor\" href=\"#django.db.backends.base.schema.BaseDatabaseSchemaEditor\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Djangos migreringssystem är uppdelat i två delar; logiken för att beräkna och lagra vilka operationer som ska köras (<code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.migrations</span></code>), och databasabstraktionslagret som omvandlar saker som ”skapa en modell” eller ”ta bort ett fält” till SQL - vilket är jobbet för <code class=\"docutils literal notranslate\"><span class=\"pre\">SchemaEditor</span></code>.</p>\n<p>Det är osannolikt att du kommer att vilja interagera direkt med <code class=\"docutils literal notranslate\"><span class=\"pre\">SchemaEditor</span></code> som en vanlig utvecklare som använder Django, men om du vill skriva ditt eget migrationssystem eller har mer avancerade behov är det mycket trevligare än att skriva SQL.</p>\n<p>Varje databasbackend i Django tillhandahåller sin egen version av <code class=\"docutils literal notranslate\"><span class=\"pre\">SchemaEditor</span></code>, och den är alltid tillgänglig via kontexthanteraren <code class=\"docutils literal notranslate\"><span class=\"pre\">connection.schema_editor()</span></code>:</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=\"k\">with</span> <span class=\"n\">connection</span><span class=\"o\">.</span><span class=\"n\">schema_editor</span><span class=\"p\">()</span> <span class=\"k\">as</span> <span class=\"n\">schema_editor</span><span class=\"p\">:</span>\n    <span class=\"n\">schema_editor</span><span class=\"o\">.</span><span class=\"n\">delete_model</span><span class=\"p\">(</span><span class=\"n\">MyModel</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Den måste användas via kontexthanteraren eftersom den då kan hantera saker som transaktioner och uppskjuten SQL (som att skapa <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code>-begränsningar).</p>\n<p>Den exponerar alla möjliga operationer som metoder, som ska anropas i den ordning du vill att ändringarna ska tillämpas. Vissa möjliga operationer eller typer av ändringar är inte möjliga i alla databaser - MyISAM stöder t.ex. inte begränsningar för främmande nycklar.</p>\n<p>Om du skriver eller underhåller en tredjeparts databasbackend för Django måste du tillhandahålla en <code class=\"docutils literal notranslate\"><span class=\"pre\">SchemaEditor</span></code>-implementering för att kunna arbeta med Djangos migreringsfunktionalitet - men så länge din databas är relativt standard i sin användning av SQL och relationsdesign bör du kunna underordna en av de inbyggda Django <code class=\"docutils literal notranslate\"><span class=\"pre\">SchemaEditor</span></code>-klasserna och justera syntaxen lite.</p>\n<section id=\"methods\">\n<h2>Metoder<a class=\"heading-anchor\" href=\"#methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"execute\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">execute()</span></code><a class=\"heading-anchor\" href=\"#execute\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.backends.base.schema.BaseDatabaseSchemaEditor.execute\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseDatabaseSchemaEditor.</span></span><span class=\"sig-name descname\"><span class=\"pre\">execute</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">sql</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">params</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">()</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.backends.base.schema.BaseDatabaseSchemaEditor.execute\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Exekverar den SQL-sats som skickas in, med eventuella parametrar. Detta är ett omslag runt de normala databasmarkörerna som gör det möjligt att fånga SQL till en <code class=\"docutils literal notranslate\"><span class=\"pre\">.sql</span></code>-fil om användaren så önskar.</p>\n</section>\n<section id=\"create-model\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">create_model()</span></code><a class=\"heading-anchor\" href=\"#create-model\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.backends.base.schema.BaseDatabaseSchemaEditor.create_model\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseDatabaseSchemaEditor.</span></span><span class=\"sig-name descname\"><span class=\"pre\">create_model</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.backends.base.schema.BaseDatabaseSchemaEditor.create_model\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Skapar en ny tabell i databasen för den angivna modellen, tillsammans med eventuella unika begränsningar eller index som krävs.</p>\n</section>\n<section id=\"delete-model\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">delete_model()</span></code><a class=\"heading-anchor\" href=\"#delete-model\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.backends.base.schema.BaseDatabaseSchemaEditor.delete_model\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseDatabaseSchemaEditor.</span></span><span class=\"sig-name descname\"><span class=\"pre\">delete_model</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.backends.base.schema.BaseDatabaseSchemaEditor.delete_model\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Tar bort modellens tabell i databasen tillsammans med alla unika begränsningar eller index som den har.</p>\n</section>\n<section id=\"add-index\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">add_index()</span></code><a class=\"heading-anchor\" href=\"#add-index\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.backends.base.schema.BaseDatabaseSchemaEditor.add_index\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseDatabaseSchemaEditor.</span></span><span class=\"sig-name descname\"><span class=\"pre\">add_index</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model</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.db.backends.base.schema.BaseDatabaseSchemaEditor.add_index\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Lägger till <code class=\"docutils literal notranslate\"><span class=\"pre\">index</span></code> till <code class=\"docutils literal notranslate\"><span class=\"pre\">model</span></code>’s tabell.</p>\n</section>\n<section id=\"remove-index\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">remove_index()</span></code><a class=\"heading-anchor\" href=\"#remove-index\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.backends.base.schema.BaseDatabaseSchemaEditor.remove_index\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseDatabaseSchemaEditor.</span></span><span class=\"sig-name descname\"><span class=\"pre\">remove_index</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model</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.db.backends.base.schema.BaseDatabaseSchemaEditor.remove_index\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Tar bort <code class=\"docutils literal notranslate\"><span class=\"pre\">index</span></code> från <code class=\"docutils literal notranslate\"><span class=\"pre\">modell</span></code>:s tabell.</p>\n</section>\n<section id=\"rename-index\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">rename_index()</span></code><a class=\"heading-anchor\" href=\"#rename-index\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.backends.base.schema.BaseDatabaseSchemaEditor.rename_index\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseDatabaseSchemaEditor.</span></span><span class=\"sig-name descname\"><span class=\"pre\">rename_index</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">old_index</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">new_index</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.backends.base.schema.BaseDatabaseSchemaEditor.rename_index\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Byter namn på <code class=\"docutils literal notranslate\"><span class=\"pre\">old_index</span></code> från <code class=\"docutils literal notranslate\"><span class=\"pre\">model</span></code>’s tabell till <code class=\"docutils literal notranslate\"><span class=\"pre\">new_index</span></code>.</p>\n</section>\n<section id=\"add-constraint\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">add_constraint()</span></code><a class=\"heading-anchor\" href=\"#add-constraint\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.backends.base.schema.BaseDatabaseSchemaEditor.add_constraint\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseDatabaseSchemaEditor.</span></span><span class=\"sig-name descname\"><span class=\"pre\">add_constraint</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model</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.db.backends.base.schema.BaseDatabaseSchemaEditor.add_constraint\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Lägger till <code class=\"docutils literal notranslate\"><span class=\"pre\">constraint</span></code> till <code class=\"docutils literal notranslate\"><span class=\"pre\">model</span></code>’s tabell.</p>\n</section>\n<section id=\"remove-constraint\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">remove_constraint()</span></code><a class=\"heading-anchor\" href=\"#remove-constraint\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.backends.base.schema.BaseDatabaseSchemaEditor.remove_constraint\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseDatabaseSchemaEditor.</span></span><span class=\"sig-name descname\"><span class=\"pre\">remove_constraint</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model</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.db.backends.base.schema.BaseDatabaseSchemaEditor.remove_constraint\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Tar bort <code class=\"docutils literal notranslate\"><span class=\"pre\">constraint</span></code> från <code class=\"docutils literal notranslate\"><span class=\"pre\">model</span></code>’s tabell.</p>\n</section>\n<section id=\"alter-unique-together\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">alter_unique_together()</span></code><a class=\"heading-anchor\" href=\"#alter-unique-together\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.backends.base.schema.BaseDatabaseSchemaEditor.alter_unique_together\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseDatabaseSchemaEditor.</span></span><span class=\"sig-name descname\"><span class=\"pre\">alter_unique_together</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">old_unique_together</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">new_unique_together</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.backends.base.schema.BaseDatabaseSchemaEditor.alter_unique_together\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Ändrar en modells <a class=\"reference internal\" href=\"/sv/6.0/ref/models/options/#django.db.models.Options.unique_together\" title=\"django.db.models.Options.unique_together\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">unique_together</span></code></a>-värde; detta kommer att lägga till eller ta bort unika begränsningar från modellens tabell tills de matchar det nya värdet.</p>\n</section>\n<section id=\"alter-index-together\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">alter_index_together()</span></code><a class=\"heading-anchor\" href=\"#alter-index-together\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.backends.base.schema.BaseDatabaseSchemaEditor.alter_index_together\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseDatabaseSchemaEditor.</span></span><span class=\"sig-name descname\"><span class=\"pre\">alter_index_together</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">old_index_together</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">new_index_together</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.backends.base.schema.BaseDatabaseSchemaEditor.alter_index_together\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Ändrar en modells <code class=\"docutils literal notranslate\"><span class=\"pre\">index_together</span></code>-värde; detta kommer att lägga till eller ta bort index från modellens tabell tills de matchar det nya värdet.</p>\n</section>\n<section id=\"alter-db-table\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">alter_db_table()</span></code><a class=\"heading-anchor\" href=\"#alter-db-table\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.backends.base.schema.BaseDatabaseSchemaEditor.alter_db_table\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseDatabaseSchemaEditor.</span></span><span class=\"sig-name descname\"><span class=\"pre\">alter_db_table</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">old_db_table</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">new_db_table</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.backends.base.schema.BaseDatabaseSchemaEditor.alter_db_table\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Byter namn på modellens tabell från <code class=\"docutils literal notranslate\"><span class=\"pre\">old_db_table</span></code> till <code class=\"docutils literal notranslate\"><span class=\"pre\">new_db_table</span></code>.</p>\n</section>\n<section id=\"alter-db-table-comment\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">alter_db_table_comment()</span></code><a class=\"heading-anchor\" href=\"#alter-db-table-comment\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.backends.base.schema.BaseDatabaseSchemaEditor.alter_db_table_comment\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseDatabaseSchemaEditor.</span></span><span class=\"sig-name descname\"><span class=\"pre\">alter_db_table_comment</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">old_db_table_comment</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">new_db_table_comment</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.backends.base.schema.BaseDatabaseSchemaEditor.alter_db_table_comment\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Ändra tabellkommentaren för <code class=\"docutils literal notranslate\"><span class=\"pre\">model</span></code> till <code class=\"docutils literal notranslate\"><span class=\"pre\">new_db_table_comment</span></code>.</p>\n</section>\n<section id=\"alter-db-tablespace\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">alter_db_tablespace()</span></code><a class=\"heading-anchor\" href=\"#alter-db-tablespace\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.backends.base.schema.BaseDatabaseSchemaEditor.alter_db_tablespace\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseDatabaseSchemaEditor.</span></span><span class=\"sig-name descname\"><span class=\"pre\">alter_db_tablespace</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">old_db_tablespace</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">new_db_tablespace</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.backends.base.schema.BaseDatabaseSchemaEditor.alter_db_tablespace\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Flyttar modellens tabell från ett tablespace till ett annat.</p>\n</section>\n<section id=\"add-field\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">add_field()</span></code><a class=\"heading-anchor\" href=\"#add-field\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.backends.base.schema.BaseDatabaseSchemaEditor.add_field\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseDatabaseSchemaEditor.</span></span><span class=\"sig-name descname\"><span class=\"pre\">add_field</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.backends.base.schema.BaseDatabaseSchemaEditor.add_field\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Lägger till en kolumn (eller ibland flera) i modellens tabell för att representera fältet. Detta kommer också att lägga till index eller en unik begränsning om fältet har <code class=\"docutils literal notranslate\"><span class=\"pre\">db_index=True</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">unique=True</span></code>.</p>\n<p>Om fältet är ett <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code> utan ett värde för <code class=\"docutils literal notranslate\"><span class=\"pre\">through</span></code> skapas en tabell för att representera relationen istället för en kolumn. Om <code class=\"docutils literal notranslate\"><span class=\"pre\">through</span></code> anges är det ett no-op.</p>\n<p>Om fältet är en <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> läggs även begränsningen för främmande nyckel till i kolumnen.</p>\n</section>\n<section id=\"remove-field\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">remove_field()</span></code><a class=\"heading-anchor\" href=\"#remove-field\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.backends.base.schema.BaseDatabaseSchemaEditor.remove_field\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseDatabaseSchemaEditor.</span></span><span class=\"sig-name descname\"><span class=\"pre\">remove_field</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.backends.base.schema.BaseDatabaseSchemaEditor.remove_field\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Tar bort den eller de kolumner som representerar fältet från modellens tabell, tillsammans med eventuella unika begränsningar, begränsningar för främmande nycklar eller index som orsakas av fältet.</p>\n<p>Om fältet är ett ManyToMany-fält utan ett värde för <code class=\"docutils literal notranslate\"><span class=\"pre\">through</span></code> tas den tabell bort som skapats för att spåra relationen. Om <code class=\"docutils literal notranslate\"><span class=\"pre\">through</span></code> anges är det ett no-op.</p>\n</section>\n<section id=\"alter-field\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Ändra_fält()</span></code><a class=\"heading-anchor\" href=\"#alter-field\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.backends.base.schema.BaseDatabaseSchemaEditor.alter_field\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">BaseDatabaseSchemaEditor.</span></span><span class=\"sig-name descname\"><span class=\"pre\">alter_field</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">model</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">old_field</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">new_field</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">strict</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.backends.base.schema.BaseDatabaseSchemaEditor.alter_field\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Detta omvandlar fältet i modellen från det gamla fältet till det nya. Detta inkluderar ändring av kolumnens namn (attributet <a class=\"reference internal\" href=\"/sv/6.0/ref/models/fields/#django.db.models.Field.db_column\" title=\"django.db.models.Field.db_column\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">db_column</span></code></a>), ändring av fältets typ (om fältklassen ändras), ändring av fältets <code class=\"docutils literal notranslate\"><span class=\"pre\">NULL</span></code>-status, tillägg eller borttagning av unika begränsningar och index för enbart fält, ändring av primärnyckel och ändring av destinationen för <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code>-begränsningar.</p>\n<p>Den vanligaste transformationen som detta inte kan göra är att omvandla ett <code class=\"docutils literal notranslate\"><span class=\"pre\">ManyToManyField</span></code> till ett vanligt fält eller vice versa; Django kan inte göra detta utan att förlora data, och därför kommer det att vägra att göra det. Istället bör <a class=\"reference internal\" href=\"#django.db.backends.base.schema.BaseDatabaseSchemaEditor.remove_field\" title=\"django.db.backends.base.schema.BaseDatabaseSchemaEditor.remove_field\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">remove_field()</span></code></a> och <a class=\"reference internal\" href=\"#django.db.backends.base.schema.BaseDatabaseSchemaEditor.add_field\" title=\"django.db.backends.base.schema.BaseDatabaseSchemaEditor.add_field\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">add_field()</span></code></a> anropas separat.</p>\n<p>Om databasen har <code class=\"docutils literal notranslate\"><span class=\"pre\">stödjer_kombinerade_alters</span></code>, kommer Django att försöka göra så många av dessa i ett enda databasanrop som möjligt; annars kommer det att utfärda en separat ALTER-sats för varje ändring, men kommer inte att utfärda ALTER där ingen ändring krävs.</p>\n</section>\n</section>\n<section id=\"attributes\">\n<h2>Attribut<a class=\"heading-anchor\" href=\"#attributes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Alla attribut ska betraktas som skrivskyddade om inget annat anges.</p>\n<section id=\"connection\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">anslutning</span></code><a class=\"heading-anchor\" href=\"#connection\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.backends.base.schema.SchemaEditor.connection\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">SchemaEditor.</span></span><span class=\"sig-name descname\"><span class=\"pre\">connection</span></span><a class=\"heading-anchor\" href=\"#django.db.backends.base.schema.SchemaEditor.connection\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Ett anslutningsobjekt till databasen. Ett användbart attribut för anslutningen är <code class=\"docutils literal notranslate\"><span class=\"pre\">alias</span></code> som kan användas för att bestämma namnet på den databas som nås.</p>\n<p>Detta är användbart när du gör datamigreringar för <a class=\"reference internal\" href=\"/sv/6.0/howto/writing-migrations/#data-migrations-and-multiple-databases\"><span class=\"std std-ref\">migreringar med flera databaser</span></a>.</p>\n</section>\n</section>","rootId":"module-django.db.backends.base.schema","toc":[{"title":"Metoder","anchor":"methods","children":[{"title":"execute()","anchor":"execute","children":[]},{"title":"create_model()","anchor":"create-model","children":[]},{"title":"delete_model()","anchor":"delete-model","children":[]},{"title":"add_index()","anchor":"add-index","children":[]},{"title":"remove_index()","anchor":"remove-index","children":[]},{"title":"rename_index()","anchor":"rename-index","children":[]},{"title":"add_constraint()","anchor":"add-constraint","children":[]},{"title":"remove_constraint()","anchor":"remove-constraint","children":[]},{"title":"alter_unique_together()","anchor":"alter-unique-together","children":[]},{"title":"alter_index_together()","anchor":"alter-index-together","children":[]},{"title":"alter_db_table()","anchor":"alter-db-table","children":[]},{"title":"alter_db_table_comment()","anchor":"alter-db-table-comment","children":[]},{"title":"alter_db_tablespace()","anchor":"alter-db-tablespace","children":[]},{"title":"add_field()","anchor":"add-field","children":[]},{"title":"remove_field()","anchor":"remove-field","children":[]},{"title":"Ändra_fält()","anchor":"alter-field","children":[]}]},{"title":"Attribut","anchor":"attributes","children":[{"title":"anslutning","anchor":"connection","children":[]}]}],"breadcrumbs":[{"docname":"ref/index","title":"API-referens","url":"/sv/6.0/ref/"}],"prev":{"docname":"ref/request-response","title":"Objekt för begäran och svar","url":"/sv/6.0/ref/request-response/"},"next":{"docname":"ref/settings","title":"Inställningar","url":"/sv/6.0/ref/settings/"},"formats":{"html":"/sv/6.0/ref/schema-editor/","markdown":"/sv/6.0/ref/schema-editor.md","json":"/sv/6.0/ref/schema-editor.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/ref/schema-editor.txt","official":"https://docs.djangoproject.com/sv/6.0/ref/schema-editor/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}