{"title":"Oibríochtaí Imirce","version":"6.0","locale":"ga","docname":"ref/migration-operations","url":"/ga/6.0/ref/migration-operations/","canonical":"https://djangodocs.dev/ga/6.0/ref/migration-operations/","summary":"Tá comhaid imirce comhdhéanta de `` Oibríocht `` amháin nó níos mó, rudaí a thaifeadann go dearbhaithe cad ba chóir don imirce a dhéanamh le do bhunachar sonraí.…","html":"<span id=\"migration-operations\"></span><h1>Oibríochtaí Imirce<a class=\"heading-anchor\" href=\"#module-django.db.migrations.operations\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Tá comhaid imirce comhdhéanta de <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Oibríocht <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>amháin nó níos mó, rudaí a thaifeadann go dearbhaithe cad ba chóir don imirce a dhéanamh le do bhunachar sonraí.</p>\n<p>Úsáideann Django na rudaí <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Oibríochta <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>seo freisin chun a fháil amach cén chuma atá ar do mhúnlaí go stairiúil, agus chun na hathruithe a rinne tú ar do mhúnlaí ón imirce deireanach a ríomh ionas gur féidir leis d'imirce a scríobh go huathoibríoch; sin an fáth go bhfuil siad dearbhaithe, mar ciallaíonn sé gur féidir le Django iad go léir a luchtú agus rith tríd gan teagmháil leis an mbunachar sonraí.</p>\n<p>&lt;data-migrations&gt;Tá rudaí <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Oibríocht <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>speisialaithe ann freisin atá le haghaidh rudaí cosúil:ref: <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">`</span></a>imirce sonraí <a href=\"#id7\"><span class=\"problematic\" id=\"id8\">`</span></a>agus le haghaidh ionramháil bunachar sonraí láimhe chun cinn. Is féidir leat do ranganna <a href=\"#id9\"><span class=\"problematic\" id=\"id10\">``</span></a>Oibríocht <a href=\"#id11\"><span class=\"problematic\" id=\"id12\">``</span></a>féin a scríobh freisin más mian leat athrú saincheaptha a dhéanann tú go coitianta a chuimsíonn tú.</p>\n<p>Má theastaíonn comhad imirce folamh uait chun do chuid rudaí <code class=\"docutils literal notranslate\"><span class=\"pre\">Oibríochta</span> <span class=\"pre\">``féin</span> <span class=\"pre\">a</span> <span class=\"pre\">scríobh</span> <span class=\"pre\">isteach,</span> <span class=\"pre\">bain</span> <span class=\"pre\">úsáid</span> <span class=\"pre\">as</span> <span class=\"pre\">`python</span> <span class=\"pre\">manage.py</span> <span class=\"pre\">makemigrations</span> <span class=\"pre\">--empty</span> <span class=\"pre\">yourappname</span></code>, ach bí ar an eolas gur féidir le hoibríochtaí athraithe scéime a chur mearbhall ar an uathbhreithnitheoir imirce agus rith a dhéanamh de:djadmin: makemigrations aschur mícheart.</p>\n<p>Tá gach ceann de na croí-oibríochtaí Django ar fáil ón modúl <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>django.db.migrations.operations`.</p>\n<p>Le haghaidh ábhar tosaigh, féach an:doc: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>treoir ábhair imirceach' &lt;/topics/migrations&gt;.</p>\n<section id=\"schema-operations\">\n<h2>Oibríochtaí Scéime<a class=\"heading-anchor\" href=\"#schema-operations\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"createmodel\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">CreateModel</span></code><a class=\"heading-anchor\" href=\"#createmodel\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.CreateModel\">\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\">CreateModel</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\">fields</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">options</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">bases</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">managers</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.db.migrations.operations.CreateModel\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Cruthaíonn sé samhail nua i stair an tionscadail agus tábla comhfhreagrach sa bhunachar sonraí chun é a mheaitseáil.</p>\n<p>Is é <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>ainm <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>ainm an tsamhail, mar a scríobhfaí sa chomhad models.py.</p>\n<p>Is é <code class=\"docutils literal notranslate\"><span class=\"pre\">fields</span></code> liosta de dhá thiúpla de <code class=\"docutils literal notranslate\"><span class=\"pre\">(ainm</span> <span class=\"pre\">réimse,</span> <span class=\"pre\">field_instance)</span></code>. Ba chóir go mbeadh an t-áireamh réimse ina réimse neamhcheangailte (mar sin díreach <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Models.charfield (...) <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>, seachas réimse a tógadh ó mhúnla eile).</p>\n<p>Is foclóir roghnach luachanna ó rang <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code> an tsamhail is ea <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>roghanna <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>.</p>\n<p>Is liosta roghnach d'aicmí eile é <code class=\"docutils literal notranslate\"><span class=\"pre\">bases</span></code> chun an tsamhail seo a bheith oidhreachta uaidh; féadfaidh rudaí ranga a bheith ann chomh maith le teaghráin san fhormáid <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;AppName.ModelName&quot;</span></code> más mian leat brath ar mhúnla eile (ionas go n-oidhreann tú ón leagan stairiúil). Mura soláthraítear é, réamhshocraíonn sé oidhreacht ón gcaighdeánach <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Models.Model <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>.</p>\n<p>Glacann <code class=\"docutils literal notranslate\"><span class=\"pre\">bainisteoirí</span> <span class=\"pre\">``liosta</span> <span class=\"pre\">de</span> <span class=\"pre\">dhá</span> <span class=\"pre\">thúpla</span> <span class=\"pre\">de</span></code> (ainm bainisteora, bainisteor_instance) <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>. Is é an chéad bhainisteoir ar an liosta an bainisteoir réamhshocraithe don tsamhail seo le linn imirce.</p>\n</section>\n<section id=\"deletemodel\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">DeleteModel</span></code><a class=\"heading-anchor\" href=\"#deletemodel\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.DeleteModel\">\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\">DeleteModel</span></span><span class=\"sig-paren\">(</span><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.db.migrations.operations.DeleteModel\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Scriosann sé an tsamhail ó stair an tionscadail agus a tábla ón mbunachar sonraí.</p>\n</section>\n<section id=\"renamemodel\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Athainm</span> <span class=\"pre\">Model</span></code><a class=\"heading-anchor\" href=\"#renamemodel\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.RenameModel\">\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\">RenameModel</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">old_name</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">new_name</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.migrations.operations.RenameModel\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Athainmníonn an tsamhail ó sheanainm go ceann nua.</p>\n<p>B'fhéidir go mbeidh ort é seo a chur leis de láimh má athraíonn tú ainm an tsamhail agus cúpla ceann dá réimsí ag an am céanna; chuig an autodetector, beidh cuma air seo gur scrios tú samhail leis an sean-ainm agus gur chuir tú ceann nua le ainm difriúil, agus caillfidh an imirce a chruthaíonn sé aon sonraí sa tseantábla.</p>\n</section>\n<section id=\"altermodeltable\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">AlterModelTable</span></code><a class=\"heading-anchor\" href=\"#altermodeltable\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.AlterModelTable\">\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\">AlterModelTable</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\">table</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.migrations.operations.AlterModelTable\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Athraíonn ainm tábla an tsamhail (an:attr: ~django.db.models.options.db_table rogha ar an bhfo-aicme <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code>).</p>\n</section>\n<section id=\"altermodeltablecomment\">\n<h3><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>AlterModelTableComment ``<a class=\"heading-anchor\" href=\"#altermodeltablecomment\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.AlterModelTableComment\">\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\">AlterModelTableComment</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\">table_comment</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.migrations.operations.AlterModelTableComment\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Athraíonn sé trácht tábla an tsamhail (an rogha: attr: ~django.db.models.options.db_table_comment ar an bhfo-aicme <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code>).</p>\n</section>\n<section id=\"alteruniquetogether\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">AlterUniquetogether</span></code><a class=\"heading-anchor\" href=\"#alteruniquetogether\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.AlterUniqueTogether\">\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\">AlterUniqueTogether</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\">unique_together</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.migrations.operations.AlterUniqueTogether\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Athraíonn sé tacar srianta uathúla an tsamhail (an rogha: attr: ~django.db.models.options.unique_Together ar an bhfo-aicme <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code>).</p>\n</section>\n<section id=\"alterindextogether\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">AlterIndexTogether</span></code><a class=\"heading-anchor\" href=\"#alterindextogether\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.AlterIndexTogether\">\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\">AlterIndexTogether</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\">index_together</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.migrations.operations.AlterIndexTogether\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Athraíonn sé tacar innéacsanna saincheaptha an tsamhail (an rogha <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>index_together <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>ar an bhfo-aicme <a href=\"#id5\"><span class=\"problematic\" id=\"id6\">``</span></a>Meta`).</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Warning</p>\n<p>Ní thacaítear le AlterIndexTogether` go hoifigiúil ach do chomhaid imirce réamh-Django 4.2. Ar chúiseanna comhoiriúnachta ar chúl, tá sé fós mar chuid den API poiblí, agus níl aon phlean ann é a dhíchur nó a bhaint, ach níor cheart é a úsáid le haghaidh imirce nua. Úsáid:aicme: ~django.db.migrations.operations.addIndex agus:class: ~django.db.migrations.operations.removeIndex oibríochtaí ina ionad.</p>\n</aside>\n</section>\n<section id=\"alterorderwithrespectto\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">AlterOrderWithReas</span></code><a class=\"heading-anchor\" href=\"#alterorderwithrespectto\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.AlterOrderWithRespectTo\">\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\">AlterOrderWithRespectTo</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\">order_with_respect_to</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.migrations.operations.AlterOrderWithRespectTo\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Déanann nó scriosann sé an colún <code class=\"docutils literal notranslate\"><span class=\"pre\">_order</span></code> is gá don rogha: attr: ~django.db.models.options.ORDER_with_RESPECT_TO ar an bhfo-aicme <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta</span></code>.</p>\n</section>\n<section id=\"altermodeloptions\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Roghanna</span> <span class=\"pre\">AlterModel</span></code><a class=\"heading-anchor\" href=\"#altermodeloptions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.AlterModelOptions\">\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\">AlterModelOptions</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\">options</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.migrations.operations.AlterModelOptions\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Stórálann athruithe ar roghanna samhail ilghnéitheacha (socruithe ar Meta` samhail) cosúil le ceadúna` agus <code class=\"docutils literal notranslate\"><span class=\"pre\">verbose_name</span></code>. Ní dhéanann sé difear don bhunachar sonraí, ach leanann sé ar na hathruithe seo le haghaidh cásanna: class: RunPython le húsáid. Ba chóir go mbeadh <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>roghanna <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>ina fhoclóir a mhapáil ainmneacha roghanna ar luachanna.</p>\n</section>\n<section id=\"altermodelmanagers\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Bainisteoirí</span> <span class=\"pre\">AlterModel</span></code><a class=\"heading-anchor\" href=\"#altermodelmanagers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.AlterModelManagers\">\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\">AlterModelManagers</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\">managers</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.migrations.operations.AlterModelManagers\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Athraíonn sé na bainisteoirí atá ar fáil le linn imirce.</p>\n</section>\n<section id=\"addfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Addfield</span></code><a class=\"heading-anchor\" href=\"#addfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.AddField\">\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\">AddField</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>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">preserve_default</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.db.migrations.operations.AddField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Cuireann sé réimse le samhail. Is é <code class=\"docutils literal notranslate\"><span class=\"pre\">model_name</span></code> ainm an tsamhail, <code class=\"docutils literal notranslate\"><span class=\"pre\">ainm</span> <span class=\"pre\">``is</span> <span class=\"pre\">ainm</span> <span class=\"pre\">an</span> <span class=\"pre\">réimse,</span> <span class=\"pre\">agus</span> <span class=\"pre\">is</span> <span class=\"pre\">sampla</span> <span class=\"pre\">Réimse</span> <span class=\"pre\">neamhcheangailte</span> <span class=\"pre\">é</span> <span class=\"pre\">``field</span></code> (an rud a chuirfeá sa dearbhú réimse i models.py` - mar shampla, <code class=\"docutils literal notranslate\"><span class=\"pre\">Models.IntegerField</span> <span class=\"pre\">(Null=True)</span></code>.</p>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">preserve_default</span></code> argument indicates whether the field's default\nvalue is permanent and should be baked into the project state (<code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>),\nor if it is temporary and just for this migration (<code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>) - usually\nbecause the migration is adding a non-nullable field to a table and needs\na default value to put into existing rows. It does not affect the behavior\nof setting defaults in the database directly.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Warning</p>\n<p>Ar bhunachair sonraí níos sine, d'fhéadfadh réimse a chur leis le luach réamhshocraithe a bheith ina chúis le hathscríobh iomlán an tábla. Tarlaíonn sé seo fiú do réimsí in-neamhnaithe agus d'fhéadfadh tionchar diúltach feidhmíochta a bheith aige. Chun é sin a sheachaint, ba chóir na céimeanna seo a leanas a dhéanamh.</p>\n<ul class=\"simple\">\n<li><p>Cuir an réimse in-neamhnaithe leis gan an luach réamhshocraithe agus rith an t-ordú:djadmin: makemigrations. Ba chóir go mbeadh sé seo imirce a ghiniúint le hoibríocht AddField.</p></li>\n<li><p>Cuir an luach réamhshocraithe le do réimse agus rith an t-ordú:djadmin: makemigrations. Ba chóir go gcruthódh sé seo imirce le hoibríocht <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Alterfield`.</p></li>\n</ul>\n</aside>\n</section>\n<section id=\"removefield\">\n<h3><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Réimse a bhaint ``<a class=\"heading-anchor\" href=\"#removefield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.RemoveField\">\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\">RemoveField</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.db.migrations.operations.RemoveField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Baineann réimse as samhail.</p>\n<p>Cuimhnigh go bhfuil sé seo réimse a chur le samhail i ndáiríre nuair a aisiomptear é. Tá an oibríocht inchúlaithe (seachas aon chaillteanas sonraí, atá dochúlaithe) má tá an réimse in-neamhnaithe nó má tá luach réamhshocraithe aige is féidir a úsáid chun an colún athchruthaithe a líonadh. Mura bhfuil an réimse neamhnaithe agus mura bhfuil luach réamhshocraithe aige, tá an oibríocht dochúilte.</p>\n<aside class=\"version-note version-changed\" data-version=\"6.0\">\n<p class=\"version-note-title\">Changed in Django 6.0</p><p><a class=\"reference internal\" href=\"/ga/6.0/ref/schema-editor/#django.db.backends.base.schema.BaseDatabaseSchemaEditor\" title=\"django.db.backends.base.schema.BaseDatabaseSchemaEditor\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BaseDatabaseSchemaEditor</span></code></a> and\nPostgreSQL backends no longer use <code class=\"docutils literal notranslate\"><span class=\"pre\">CASCADE</span></code> to delete dependent related\ndatabase objects, such as views. Any dependent objects that are not managed\nby Django may need to be removed manually before running <code class=\"docutils literal notranslate\"><span class=\"pre\">RemoveField</span></code>.</p>\n</aside>\n</section>\n<section id=\"alterfield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Alterfield</span></code><a class=\"heading-anchor\" href=\"#alterfield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.AlterField\">\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\">AlterField</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>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">field</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">preserve_default</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.db.migrations.operations.AlterField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Athraíonn sé sainmhíniú réimse, lena n-áirítear athruithe ar a chineál, :attr: ~django.db.models.field.null, :attr: ~django.db.models.field.unique, :attr: ~django.db.models.field.db_column agus tréithe réimse eile.</p>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">preserve_default</span></code> argument indicates whether the field's default\nvalue is permanent and should be baked into the project state (<code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>),\nor if it is temporary and just for this migration (<code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>) - usually\nbecause the migration is altering a nullable field to a non-nullable one and\nneeds a default value to put into existing rows. It does not affect the\nbehavior of setting defaults in the database directly.</p>\n<p>Tabhair faoi deara nach féidir gach athrú a dhéanamh ar gach bunachar sonraí - mar shampla, ní féidir leat réimse cineál téacs mar Models.textField () ``a athrú go réimse cineál uimhreacha mar ``Models.IntegerField ()` ar fhormhór na mbunachair sonraí.</p>\n</section>\n<section id=\"renamefield\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Renamefield</span></code><a class=\"heading-anchor\" href=\"#renamefield\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.RenameField\">\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\">RenameField</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\">old_name</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">new_name</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.migrations.operations.RenameField\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Athraíonn ainm réimse (agus, unless:attr: ~django.db.models.field.db_column socraítear, ainm a cholún).</p>\n</section>\n<section id=\"addindex\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">AddIndex</span></code><a class=\"heading-anchor\" href=\"#addindex\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.AddIndex\">\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\">AddIndex</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.db.migrations.operations.AddIndex\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Cruthaíonn innéacs sa tábla bunachar sonraí don tsamhail le <code class=\"docutils literal notranslate\"><span class=\"pre\">model_name</span></code>. Is sampla den aicme:class: ~django.db.models.index is ea index`.</p>\n</section>\n<section id=\"removeindex\">\n<h3><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Táimhainnéacs ``<a class=\"heading-anchor\" href=\"#removeindex\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.RemoveIndex\">\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\">RemoveIndex</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.db.migrations.operations.RemoveIndex\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Baineann sé an t-innéacs darb ainm <code class=\"docutils literal notranslate\"><span class=\"pre\">ainm</span></code> ón tsamhail le <code class=\"docutils literal notranslate\"><span class=\"pre\">model_name</span></code>.</p>\n</section>\n<section id=\"renameindex\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Renameindex</span></code><a class=\"heading-anchor\" href=\"#renameindex\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.RenameIndex\">\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\">RenameIndex</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\">new_name</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">old_name</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">old_fields</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.db.migrations.operations.RenameIndex\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Athainmnigh innéacs sa tábla bunachar sonraí don tsamhail le <code class=\"docutils literal notranslate\"><span class=\"pre\">model_name</span></code>. Is féidir ceann amháin de old_name` agus <code class=\"docutils literal notranslate\"><span class=\"pre\">old_fields</span></code> a sholáthar. Is é old_fields` athraitheach de na teaghráin, a fhreagraíonn go minic do réimsí <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>index_together <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>(rogha réamh-DJango 5.1).</p>\n<p>On databases that don't support an index renaming statement (SQLite), the\noperation will drop and recreate the index, which can be expensive.</p>\n</section>\n<section id=\"addconstraint\">\n<h3><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Adsrianadh ``<a class=\"heading-anchor\" href=\"#addconstraint\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.AddConstraint\">\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\">AddConstraint</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.db.migrations.operations.AddConstraint\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Cruthaíonn a:doc: sriant sa tábla bunachar sonraí &lt;/ref/models/constraints&gt; don tsamhail le <code class=\"docutils literal notranslate\"><span class=\"pre\">model_name</span></code>.</p>\n</section>\n<section id=\"removeconstraint\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Removeconstraint</span></code><a class=\"heading-anchor\" href=\"#removeconstraint\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.RemoveConstraint\">\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\">RemoveConstraint</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.db.migrations.operations.RemoveConstraint\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Baineann sé an srian darb ainm <code class=\"docutils literal notranslate\"><span class=\"pre\">ainm</span> <span class=\"pre\">``ón</span> <span class=\"pre\">tsamhail</span> <span class=\"pre\">le</span> <span class=\"pre\">``model_name</span></code>.</p>\n</section>\n<section id=\"alterconstraint\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">AlterConstraint</span></code><a class=\"heading-anchor\" href=\"#alterconstraint\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"version-note version-added\" data-version=\"5.2\">\n<p class=\"version-note-title\">New in Django 5.2</p></aside>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.AlterConstraint\">\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\">AlterConstraint</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>, <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.migrations.operations.AlterConstraint\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Alters the constraint named <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> of the model with <code class=\"docutils literal notranslate\"><span class=\"pre\">model_name</span></code> with the\nnew <code class=\"docutils literal notranslate\"><span class=\"pre\">constraint</span></code> without affecting the database.</p>\n</section>\n</section>\n<section id=\"special-operations\">\n<h2>Oibríochtaí Speisialta<a class=\"heading-anchor\" href=\"#special-operations\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"runsql\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Runsql</span></code><a class=\"heading-anchor\" href=\"#runsql\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.RunSQL\">\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\">RunSQL</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\">reverse_sql</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">state_operations</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</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>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">elidable</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.migrations.operations.RunSQL\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Ceadaíonn sé SQL treallach a reáchtáil ar an mbunachar sonraí - úsáideach le haghaidh gnéithe níos airde de chúltaca bunachar sonraí nach dtacaíonn Django go díreach.</p>\n<p>Ba chóir go mbeadh sql`, agus reverse_sql` má sholáthraítear iad, teaghráin SQL le rith ar an mbunachar sonraí. Ar fhormhór na gcúltaca bunachar sonraí (gach ceann ach PostgreSQL), roinnfidh Django an SQL ina ráitis aonair sula ndéanfaidh sé iad a fhorghníomhú.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Warning</p>\n<p>&lt;non-atomic-migrations&gt;Ar PostgreSQL agus SQLite, ní húsáid ach <code class=\"docutils literal notranslate\"><span class=\"pre\">BEGIN</span></code> nó COMMIT` i do SQL in:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>imirce neamh-adamhacha <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>, chun staid idirbheart Django a bhriseadh a sheachaint.</p>\n</aside>\n<p>Is féidir leat liosta teaghráin nó 2-tuples a rith freisin. &lt;executing-custom-sql&gt;Úsáidtear an dara ceann chun ceisteanna agus paraiméadair a rith ar an mbealach céanna amha:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>cursor.execute () <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>. Tá na trí oibríocht seo coibhéiseach:</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=\"n\">migrations</span><span class=\"o\">.</span><span class=\"n\">RunSQL</span><span class=\"p\">(</span><span class=\"s2\">&quot;INSERT INTO musician (name) VALUES (&#39;Reinhardt&#39;);&quot;</span><span class=\"p\">)</span>\n<span class=\"n\">migrations</span><span class=\"o\">.</span><span class=\"n\">RunSQL</span><span class=\"p\">([(</span><span class=\"s2\">&quot;INSERT INTO musician (name) VALUES (&#39;Reinhardt&#39;);&quot;</span><span class=\"p\">,</span> <span class=\"kc\">None</span><span class=\"p\">)])</span>\n<span class=\"n\">migrations</span><span class=\"o\">.</span><span class=\"n\">RunSQL</span><span class=\"p\">([(</span><span class=\"s2\">&quot;INSERT INTO musician (name) VALUES (</span><span class=\"si\">%s</span><span class=\"s2\">);&quot;</span><span class=\"p\">,</span> <span class=\"p\">[</span><span class=\"s2\">&quot;Reinhardt&quot;</span><span class=\"p\">])])</span>\n</code></pre></div>\n<p>Más mian leat comharthaí faoin gcéad liteartha a áireamh sa cheist, caithfidh tú iad a dhúbailt má tá tú ag dul ar pharaiméadair.</p>\n<p>Déantar na ceisteanna reverse_sql` a fhorghníomhú nuair nach ndéantar an imirce a chur i bhfeidhm. Ba chóir dóibh an méid a dhéanann na ceisteanna sql a chealú. Mar shampla, chun an t-ionchur thuas a chealú le scriosadh:</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=\"n\">migrations</span><span class=\"o\">.</span><span class=\"n\">RunSQL</span><span class=\"p\">(</span>\n    <span class=\"n\">sql</span><span class=\"o\">=</span><span class=\"p\">[(</span><span class=\"s2\">&quot;INSERT INTO musician (name) VALUES (</span><span class=\"si\">%s</span><span class=\"s2\">);&quot;</span><span class=\"p\">,</span> <span class=\"p\">[</span><span class=\"s2\">&quot;Reinhardt&quot;</span><span class=\"p\">])],</span>\n    <span class=\"n\">reverse_sql</span><span class=\"o\">=</span><span class=\"p\">[(</span><span class=\"s2\">&quot;DELETE FROM musician where name=</span><span class=\"si\">%s</span><span class=\"s2\">;&quot;</span><span class=\"p\">,</span> <span class=\"p\">[</span><span class=\"s2\">&quot;Reinhardt&quot;</span><span class=\"p\">])],</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>Más é <code class=\"docutils literal notranslate\"><span class=\"pre\">reverse_sql</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> (an réamhshocraithe), tá an oibríocht <code class=\"docutils literal notranslate\"><span class=\"pre\">Runsql</span></code> dochúlghabháilte.</p>\n<p>Ligeann an argóint state_operations` duit oibríochtaí atá comhionann leis an SQL a sholáthar i dtéarmaí staid an tionscadail. Mar shampla, má tá colún á chruthú agat de láimh, ba chóir duit dul isteach i liosta ina bhfuil oibríocht Addfield anseo ionas go mbeidh staid cothrom le dáta den tsamhail fós ag an uathbhreithnitheoir. Mura ndéanann tú, nuair a reáchtálann tú makemigrations eile, ní fheicfidh sé aon oibríocht a chuireann an réimse sin leis agus mar sin déanfaidh sé iarracht é a reáchtáil arís. Mar shampla:</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=\"n\">migrations</span><span class=\"o\">.</span><span class=\"n\">RunSQL</span><span class=\"p\">(</span>\n    <span class=\"s2\">&quot;ALTER TABLE musician ADD COLUMN name varchar(255) NOT NULL;&quot;</span><span class=\"p\">,</span>\n    <span class=\"n\">state_operations</span><span class=\"o\">=</span><span class=\"p\">[</span>\n        <span class=\"n\">migrations</span><span class=\"o\">.</span><span class=\"n\">AddField</span><span class=\"p\">(</span>\n            <span class=\"s2\">&quot;musician&quot;</span><span class=\"p\">,</span>\n            <span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span>\n            <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">255</span><span class=\"p\">),</span>\n        <span class=\"p\">),</span>\n    <span class=\"p\">],</span>\n<span class=\"p\">)</span>\n</code></pre></div>\n<p>Cuirfear an argóint roghnach <code class=\"docutils literal notranslate\"><span class=\"pre\">leideanna</span> <span class=\"pre\">``ar</span> <span class=\"pre\">aghaidh</span> <span class=\"pre\">mar</span> <span class=\"pre\">`**hints</span></code> chuig an modh:meth: allow_migrate de ródairí bunachar sonraí chun cabhrú leo cinntí ródaithe a dhéanamh. Féach:ref: topics-db-multi-db-hints le haghaidh tuilleadh sonraí ar leideanna bunachar sonraí.</p>\n<p>&lt;migration-squashing&gt;Cinneann an argóint roghnach <code class=\"docutils literal notranslate\"><span class=\"pre\">elidable</span></code> cibé an mbainfear an oibríocht nó nach ndéanfar an oibríocht nuai:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>imirce squashing <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.RunSQL.noop\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">RunSQL.</span></span><span class=\"sig-name descname\"><span class=\"pre\">noop</span></span><a class=\"heading-anchor\" href=\"#django.db.migrations.operations.RunSQL.noop\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Pas an tréith <code class=\"docutils literal notranslate\"><span class=\"pre\">Runsql.noop</span></code> go sql` nó <code class=\"docutils literal notranslate\"><span class=\"pre\">reverse_sql</span></code> nuair a theastaíonn uait gan an oibríocht aon rud a dhéanamh sa treo ar leith. Tá sé seo úsáideach go háirithe chun an oibríocht a dhéanamh inchúlaithe.</p>\n</dd></dl>\n\n</section>\n<section id=\"runpython\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">Runpython</span></code><a class=\"heading-anchor\" href=\"#runpython\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.RunPython\">\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\">RunPython</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">code</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">reverse_code</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">atomic</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</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>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">elidable</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.migrations.operations.RunPython\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Ritheann sé cód saincheaptha Python i gcomhthéacs stairiúil. &lt;django.db.backends.base.schema.BaseDatabaseSchemaEditor&gt;Ba chóir go mbeadh “code” (agus reverse_code` má sholáthraítear) a ghlacann le dhá argóint; is sampla de Django.Apps.Registry.apps` é an chéad cheann ina bhfuil samhlacha stairiúla a mheaitseálann áit na hoibríochta i stair an tionscadail, agus is é an dara ceann de: class: SchemaEditor.</p>\n<p>Tugtar ar an argóint reverse_code` nuair a dhéantar imirce a chur i bhfeidhm. Ba chóir don ghlaoiteoir seo an méid a dhéantar sa <code class=\"docutils literal notranslate\"><span class=\"pre\">cód</span> <span class=\"pre\">``inghlaochta</span> <span class=\"pre\">a</span> <span class=\"pre\">chealú</span> <span class=\"pre\">ionas</span> <span class=\"pre\">go</span> <span class=\"pre\">mbeidh</span> <span class=\"pre\">an</span> <span class=\"pre\">imirce</span> <span class=\"pre\">inchúlaithe.</span> <span class=\"pre\">Más</span> <span class=\"pre\">é</span> <span class=\"pre\">``reverse_code</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> (an réamhshocraithe), ní féidir an oibríocht <code class=\"docutils literal notranslate\"><span class=\"pre\">RunPython</span></code> dochúlghabháilte.</p>\n<p>Cuirfear an argóint roghnach <code class=\"docutils literal notranslate\"><span class=\"pre\">leideanna</span> <span class=\"pre\">``ar</span> <span class=\"pre\">aghaidh</span> <span class=\"pre\">mar</span> <span class=\"pre\">`**hints</span></code> chuig an modh:meth: allow_migrate de ródairí bunachar sonraí chun cabhrú leo cinneadh ródaithe a dhéanamh. Féach:ref: topics-db-multi-db-hints le haghaidh tuilleadh sonraí ar leideanna bunachar sonraí.</p>\n<p>&lt;migration-squashing&gt;Cinneann an argóint roghnach <code class=\"docutils literal notranslate\"><span class=\"pre\">elidable</span></code> cibé an mbainfear an oibríocht nó nach ndéanfar an oibríocht nuai:ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>imirce squashing <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>.</p>\n<p>Moltar duit an cód a scríobh mar fheidhm ar leithligh os cionn an aicme <code class=\"docutils literal notranslate\"><span class=\"pre\">Imigration</span></code> sa chomhad imirce, agus é a chur chuig Runpython`. Seo sampla de <code class=\"docutils literal notranslate\"><span class=\"pre\">Runpython</span></code> a úsáid chun roinnt rudaí tosaigh a chruthú ar mhúnla <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Tír <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>:</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.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">migrations</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">forwards_func</span><span class=\"p\">(</span><span class=\"n\">apps</span><span class=\"p\">,</span> <span class=\"n\">schema_editor</span><span class=\"p\">):</span>\n    <span class=\"c1\"># We get the model from the versioned app registry;</span>\n    <span class=\"c1\"># if we directly import it, it&#39;ll be the wrong version</span>\n    <span class=\"n\">Country</span> <span class=\"o\">=</span> <span class=\"n\">apps</span><span class=\"o\">.</span><span class=\"n\">get_model</span><span class=\"p\">(</span><span class=\"s2\">&quot;myapp&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Country&quot;</span><span class=\"p\">)</span>\n    <span class=\"n\">db_alias</span> <span class=\"o\">=</span> <span class=\"n\">schema_editor</span><span class=\"o\">.</span><span class=\"n\">connection</span><span class=\"o\">.</span><span class=\"n\">alias</span>\n    <span class=\"n\">Country</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">using</span><span class=\"p\">(</span><span class=\"n\">db_alias</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">bulk_create</span><span class=\"p\">(</span>\n        <span class=\"p\">[</span>\n            <span class=\"n\">Country</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;USA&quot;</span><span class=\"p\">,</span> <span class=\"n\">code</span><span class=\"o\">=</span><span class=\"s2\">&quot;us&quot;</span><span class=\"p\">),</span>\n            <span class=\"n\">Country</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;France&quot;</span><span class=\"p\">,</span> <span class=\"n\">code</span><span class=\"o\">=</span><span class=\"s2\">&quot;fr&quot;</span><span class=\"p\">),</span>\n        <span class=\"p\">]</span>\n    <span class=\"p\">)</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">reverse_func</span><span class=\"p\">(</span><span class=\"n\">apps</span><span class=\"p\">,</span> <span class=\"n\">schema_editor</span><span class=\"p\">):</span>\n    <span class=\"c1\"># forwards_func() creates two Country instances,</span>\n    <span class=\"c1\"># so reverse_func() should delete them.</span>\n    <span class=\"n\">Country</span> <span class=\"o\">=</span> <span class=\"n\">apps</span><span class=\"o\">.</span><span class=\"n\">get_model</span><span class=\"p\">(</span><span class=\"s2\">&quot;myapp&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Country&quot;</span><span class=\"p\">)</span>\n    <span class=\"n\">db_alias</span> <span class=\"o\">=</span> <span class=\"n\">schema_editor</span><span class=\"o\">.</span><span class=\"n\">connection</span><span class=\"o\">.</span><span class=\"n\">alias</span>\n    <span class=\"n\">Country</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">using</span><span class=\"p\">(</span><span class=\"n\">db_alias</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;USA&quot;</span><span class=\"p\">,</span> <span class=\"n\">code</span><span class=\"o\">=</span><span class=\"s2\">&quot;us&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">delete</span><span class=\"p\">()</span>\n    <span class=\"n\">Country</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">using</span><span class=\"p\">(</span><span class=\"n\">db_alias</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">filter</span><span class=\"p\">(</span><span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;France&quot;</span><span class=\"p\">,</span> <span class=\"n\">code</span><span class=\"o\">=</span><span class=\"s2\">&quot;fr&quot;</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">delete</span><span class=\"p\">()</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=\"n\">dependencies</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n\n    <span class=\"n\">operations</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n        <span class=\"n\">migrations</span><span class=\"o\">.</span><span class=\"n\">RunPython</span><span class=\"p\">(</span><span class=\"n\">forwards_func</span><span class=\"p\">,</span> <span class=\"n\">reverse_func</span><span class=\"p\">),</span>\n    <span class=\"p\">]</span>\n</code></pre></div>\n<p>De ghnáth is é seo &lt;data-migrations&gt;an oibríocht a úsáideann tú chun: ref: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>imirce sonraí <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>a chruthú, nuashonruithe agus athruithe sonraí saincheaptha a reáchtáil, agus aon rud eile a theastaíonn uait rochtain ar chód ORM agus/nó Python dó.</p>\n<p>Cosúil le: class: Runsql, cinntigh má athraíonn tú scéim taobh istigh anseo go bhfuil tú ag déanamh taobh amuigh de scóip chórais samhail Django (m.sh. spreagthóirí) nó go n-úsáideann tú: class: SeparateDatabaseandState chun oibríochtaí a chur isteach a léireoidh do chuid athruithe ar an stát samhail - ar shlí eile, stopfaidh an ORM leaganaithe agus an autodetector ag obair i gceart.</p>\n<p>De réir réamhshocraithe, reáchtálfaidh <code class=\"docutils literal notranslate\"><span class=\"pre\">RunPython</span></code> a ábhar taobh istigh d'idirbheart ar bhunachair sonraí nach dtacaíonn le hidirbhearta DDL (mar shampla, MySQL agus Oracle). Ba chóir go mbeadh sé seo sábháilte, ach féadfaidh sé timpiste a bheith ina chúis má dhéanann tú iarracht an schema_editor` a chuirtear ar fáil ar na cúltaca seo a úsáid; sa chás seo, cuir <code class=\"docutils literal notranslate\"><span class=\"pre\">Atomic=False</span></code> chuig an oibríocht <code class=\"docutils literal notranslate\"><span class=\"pre\">RunPython</span></code>.</p>\n<p>Ar bhunachair sonraí a thacaíonn le hidirbhearta DDL (SQLite agus PostgreSQL), níl aon idirbhearta curtha leis go huathoibríoch ar oibríochtaí Runpython seachas na hidirbhearta a cruthaíodh do gach imirce. Dá bhrí sin, ar PostgreSQL, mar shampla, ba cheart duit athruithe scéime agus oibríochtaí <code class=\"docutils literal notranslate\"><span class=\"pre\">RunPython</span></code> a chomhcheangal san imirce céanna nó féadfaidh tú earráidí mar OperationalError: can't ALTER TABLE “mytable” toisc go bhfuil imeachtaí truiceacha ar feitheamh aige `.</p>\n<p>Má tá bunachar sonraí difriúil agat agus mura bhfuil tú cinnte an dtacaíonn sé le hidirbhearta DDL, seiceáil an tréith <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.connection.features.can_rollback_ddl</span></code>.</p>\n<p>Má tá an oibríocht <code class=\"docutils literal notranslate\"><span class=\"pre\">RunPython</span></code> mar chuid de a:ref: imirce neamh-adamh`&lt;non-atomic-migrations&gt;, ní fhorghníomhfar an oibríocht ach in idirbheart má chuirtear ``Atomic=True` chuig an oibríocht <code class=\"docutils literal notranslate\"><span class=\"pre\">RunPython</span></code>.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Warning</p>\n<p>Ní athraíonn <code class=\"docutils literal notranslate\"><span class=\"pre\">RunPython</span></code> nasc na samhlacha duit go draíochta; rachaidh aon mhodhanna samhail a ghlaonn tú chuig an mbunachar sonraí réamhshocraithe mura dtugann tú an alias bunachar sonraí reatha dóibh (ar fáil ó schema_editor.connection.alias`, áit is é <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>schema_editor <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>an dara argóint le do fheidhm).</p>\n</aside>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.RunPython.noop\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">static</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">RunPython.</span></span><span class=\"sig-name descname\"><span class=\"pre\">noop</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.db.migrations.operations.RunPython.noop\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Pas an modh <code class=\"docutils literal notranslate\"><span class=\"pre\">Runpython.noop</span></code> go code` nó <code class=\"docutils literal notranslate\"><span class=\"pre\">reverse_code</span></code> nuair is mian leat gan an oibríocht aon rud a dhéanamh sa treo ar leith. Tá sé seo úsáideach go háirithe chun an oibríocht a dhéanamh inchúlaithe.</p>\n</dd></dl>\n\n</section>\n<section id=\"separatedatabaseandstate\">\n<h3><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>ScaoilteDatabaseandstát ``<a class=\"heading-anchor\" href=\"#separatedatabaseandstate\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.SeparateDatabaseAndState\">\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\">SeparateDatabaseAndState</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">database_operations</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">state_operations</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.db.migrations.operations.SeparateDatabaseAndState\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Oibríocht an-speisialaithe a ligeann duit gnéithe na hoibríochtaí bunachar sonraí (ag athrú scéime) agus stáit (cumhacht uathbhreithadóir) a mheascadh agus a mheaitseáil.</p>\n<p>Glacann sé le dhá liosta oibríochtaí. Nuair a iarrtar sé stát a chur i bhfeidhm, úsáidfidh sé an liosta <code class=\"docutils literal notranslate\"><span class=\"pre\">state_operations</span></code> (is leagan ginearálta é seo d'argóint <code class=\"docutils literal notranslate\"><span class=\"pre\">state_operations</span></code> class: `RunSQL). Nuair a iarrtar ar athruithe a chur i bhfeidhm ar an mbunachar sonraí, úsáidfidh sé an liosta <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>database_operations`.</p>\n<p>Má éiríonn staid iarbhír an bhunachar sonraí agus dearcadh Django ar an stát as sioncrónú, féadfaidh sé seo an creat imirce a bhriseadh, fiú caillteanas sonraí a bheith mar thoradh air. Is fiú cúramach a bheith agat agus d'oibríochtaí bunachar sonraí agus stáit a sheiceáil go cúramach. Is féidir leat: djadmin: sqlmigrate agus:djadmin: dbshell a úsáid chun d'oibríochtaí bunachar sonraí a sheiceáil. &lt;makemigrations --dry-run&gt;Is féidir leat: djadmin: makemigrations a úsáid, go háirithe le:option: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>--dry-run <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>, chun d'oibríochtaí stáit a sheiceáil.</p>\n<p>Mar shampla ag baint úsáide as <code class=\"docutils literal notranslate\"><span class=\"pre\">SeparatedAtabaseandState</span></code>, féach:ref: changing-a-manytomanyfield-to-use-a-through-model.</p>\n</section>\n</section>\n<section id=\"operation-category\">\n<h2>Catagóir oibríochta<a class=\"heading-anchor\" href=\"#operation-category\"><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.db.migrations.operations.base.OperationCategory\">\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\">OperationCategory</span></span><a class=\"heading-anchor\" href=\"#django.db.migrations.operations.base.OperationCategory\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Catagóirí oibríochta imirce a úsáidtear ag an ordú:djadmin: makemigrations chun siombailí bríocha a thaispeáint.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.base.OperationCategory.ADDITION\">\n<span class=\"sig-name descname\"><span class=\"pre\">ADDITION</span></span><a class=\"heading-anchor\" href=\"#django.db.migrations.operations.base.OperationCategory.ADDITION\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><em>Siombail</em>: <code class=\"docutils literal notranslate\"><span class=\"pre\">+</span></code></p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.base.OperationCategory.REMOVAL\">\n<span class=\"sig-name descname\"><span class=\"pre\">REMOVAL</span></span><a class=\"heading-anchor\" href=\"#django.db.migrations.operations.base.OperationCategory.REMOVAL\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><em>Siombail</em>: <code class=\"docutils literal notranslate\"><span class=\"pre\">-</span></code></p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.base.OperationCategory.ALTERATION\">\n<span class=\"sig-name descname\"><span class=\"pre\">ALTERATION</span></span><a class=\"heading-anchor\" href=\"#django.db.migrations.operations.base.OperationCategory.ALTERATION\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><em>Siombail</em>: <code class=\"docutils literal notranslate\"><span class=\"pre\">~</span></code></p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.base.OperationCategory.PYTHON\">\n<span class=\"sig-name descname\"><span class=\"pre\">PYTHON</span></span><a class=\"heading-anchor\" href=\"#django.db.migrations.operations.base.OperationCategory.PYTHON\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><em>Siombail</em>: <code class=\"docutils literal notranslate\"><span class=\"pre\">p</span></code></p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.base.OperationCategory.SQL\">\n<span class=\"sig-name descname\"><span class=\"pre\">SQL</span></span><a class=\"heading-anchor\" href=\"#django.db.migrations.operations.base.OperationCategory.SQL\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><em>Siombail</em>: <code class=\"docutils literal notranslate\"><span class=\"pre\">s</span></code></p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.db.migrations.operations.base.OperationCategory.MIXED\">\n<span class=\"sig-name descname\"><span class=\"pre\">MIXED</span></span><a class=\"heading-anchor\" href=\"#django.db.migrations.operations.base.OperationCategory.MIXED\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><em>Siombail</em>: <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>? ``</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"writing-your-own\">\n<span id=\"writing-your-own-migration-operation\"></span><h2>Do chuid féin a scríobh<a class=\"heading-anchor\" href=\"#writing-your-own\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Tá API réasúnta simplí ag oibríochtaí, agus tá siad deartha ionas gur féidir leat do chuid féin a scríobh go héasca chun na cinn Django ionsuite a fhorlíonadh. Breathnaíonn struchtúr bunúsach <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>Oibríocht' mar seo:</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.db.migrations.operations.base</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Operation</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MyCustomOperation</span><span class=\"p\">(</span><span class=\"n\">Operation</span><span class=\"p\">):</span>\n    <span class=\"c1\"># If this is False, it means that this operation will be ignored by</span>\n    <span class=\"c1\"># sqlmigrate; if true, it will be run and the SQL collected for its output.</span>\n    <span class=\"n\">reduces_to_sql</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>\n\n    <span class=\"c1\"># If this is False, Django will refuse to reverse past this operation.</span>\n    <span class=\"n\">reversible</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>\n\n    <span class=\"c1\"># This categorizes the operation. The corresponding symbol will be</span>\n    <span class=\"c1\"># displayed by the makemigrations command.</span>\n    <span class=\"n\">category</span> <span class=\"o\">=</span> <span class=\"n\">OperationCategory</span><span class=\"o\">.</span><span class=\"n\">ADDITION</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">arg1</span><span class=\"p\">,</span> <span class=\"n\">arg2</span><span class=\"p\">):</span>\n        <span class=\"c1\"># Operations are usually instantiated with arguments in migration</span>\n        <span class=\"c1\"># files. Store the values of them on self for later use.</span>\n        <span class=\"k\">pass</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">state_forwards</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">app_label</span><span class=\"p\">,</span> <span class=\"n\">state</span><span class=\"p\">):</span>\n        <span class=\"c1\"># The Operation should take the &#39;state&#39; parameter (an instance of</span>\n        <span class=\"c1\"># django.db.migrations.state.ProjectState) and mutate it to match</span>\n        <span class=\"c1\"># any schema changes that have occurred.</span>\n        <span class=\"k\">pass</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">database_forwards</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">app_label</span><span class=\"p\">,</span> <span class=\"n\">schema_editor</span><span class=\"p\">,</span> <span class=\"n\">from_state</span><span class=\"p\">,</span> <span class=\"n\">to_state</span><span class=\"p\">):</span>\n        <span class=\"c1\"># The Operation should use schema_editor to apply any changes it</span>\n        <span class=\"c1\"># wants to make to the database.</span>\n        <span class=\"k\">pass</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">database_backwards</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">app_label</span><span class=\"p\">,</span> <span class=\"n\">schema_editor</span><span class=\"p\">,</span> <span class=\"n\">from_state</span><span class=\"p\">,</span> <span class=\"n\">to_state</span><span class=\"p\">):</span>\n        <span class=\"c1\"># If reversible is True, this is called when the operation is reversed.</span>\n        <span class=\"k\">pass</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">describe</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"c1\"># This is used to describe what the operation does.</span>\n        <span class=\"k\">return</span> <span class=\"s2\">&quot;Custom Operation&quot;</span>\n\n    <span class=\"nd\">@property</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">migration_name_fragment</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"c1\"># Optional. A filename part suitable for automatically naming a</span>\n        <span class=\"c1\"># migration containing this operation, or None if not applicable.</span>\n        <span class=\"k\">return</span> <span class=\"s2\">&quot;custom_operation_</span><span class=\"si\">%s</span><span class=\"s2\">_</span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span> <span class=\"o\">%</span> <span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">arg1</span><span class=\"p\">,</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">arg2</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Is féidir leat an teimpléad seo a thógáil agus oibriú uaidh, cé go molaimid féachaint ar na hoibríochtaí ionsuite Django i django.db.migrations.operations` - clúdaíonn siad go leor den úsáid shamplach gnéithe leath-inmheánacha den chreat imirce cosúil le Project`state `agus na patrúin a úsáidtear chun samhlacha stairiúla a fháil, chomh maith le `ModelState agus na patrúin a úsáidtear chun samhlacha stairiúla a athrú ar aghaidh () <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>.</p>\n<p>Roinnt rudaí le tabhairt faoi deara:</p>\n<ul>\n<li><p>Ní gá duit an iomarca a fhoghlaim faoi ProjectState` chun imirce a scríobh; níl a fhios agat ach go bhfuil maoin apps ``aipeanna aige a thugann rochtain ar chlárlann aipeanna (ar féidir leat ``get_model` a ghlaoch ansin air).</p></li>\n<li><p>Faigheann <code class=\"docutils literal notranslate\"><span class=\"pre\">database_forwards</span></code> agus database_backwards` dhá stát ar aghaidh chucu; léiríonn siad seo an difríocht a bheadh i bhfeidhm ag an modh <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>state_forward <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>, ach tugtar duit ar chúiseanna áisiúlachta agus luais.</p></li>\n<li><p>Más mian leat oibriú le ranganna samhail nó cásanna samhail ón argóint <code class=\"docutils literal notranslate\"><span class=\"pre\">from_state</span> <span class=\"pre\">``i</span> <span class=\"pre\">`database_forwards</span> <span class=\"pre\">()</span></code> nó database_backwards () `, ní mór duit stáit samhail a thabhairt ag baint úsáide as an modh <code class=\"docutils literal notranslate\"><span class=\"pre\">clear_delayed_apps_cache</span> <span class=\"pre\">()</span></code> chun samhlacha gaolmhara a chur ar fáil:</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\">def</span><span class=\"w\"> </span><span class=\"nf\">database_forwards</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">app_label</span><span class=\"p\">,</span> <span class=\"n\">schema_editor</span><span class=\"p\">,</span> <span class=\"n\">from_state</span><span class=\"p\">,</span> <span class=\"n\">to_state</span><span class=\"p\">):</span>\n    <span class=\"c1\"># This operation should have access to all models. Ensure that all models are</span>\n    <span class=\"c1\"># reloaded in case any are delayed.</span>\n    <span class=\"n\">from_state</span><span class=\"o\">.</span><span class=\"n\">clear_delayed_apps_cache</span><span class=\"p\">()</span>\n    <span class=\"o\">...</span>\n</code></pre></div>\n</li>\n<li><p>Is é <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>to_state <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">``</span></a>sa mhodh database_backwards an stát*níos sine; is é sin, an ceann a bheidh mar an staid reatha nuair a bheidh an imirce críochnaithe ag aisiompú.</p></li>\n<li><p>B'fhéidir go bhfeicfeá cur i bhfeidhm <code class=\"docutils literal notranslate\"><span class=\"pre\">references_model</span></code> ar na hoibríochtaí ionsuite; is cuid den chód uathbhreithnithe é seo agus níl sé tábhacht le haghaidh oibríochtaí saincheaptha.</p></li>\n</ul>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Warning</p>\n<p>Ar chúiseanna feidhmíochta, athúsáidtear na cásanna: class: ~django.db.models.field i ModelState.Field trasna imirce. Ní mór duit na tréithe ar na cásanna seo a athrú riamh. Más gá duit réimse a athrú in state_forwards () `, ní mór duit an seanshampla a bhaint as ModelState.fields` agus cás nua a chur ina áit. Tá an rud céanna fíor maidir leis na cásanna: class: ~Django.db.Models.Manager i ModelState.Manager.</p>\n</aside>\n<p>Mar shampla, déanaimis oibríocht a luchtaíonn síntí PostgreSQL (ina bhfuil cuid de na gnéithe níos spreagúla PostgreSQL). Ós rud é nach bhfuil aon athruithe stáit samhail ann, níl le déanamh aige ach ordú amháin a reáchtáil:</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.db.migrations.operations.base</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Operation</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">LoadExtension</span><span class=\"p\">(</span><span class=\"n\">Operation</span><span class=\"p\">):</span>\n    <span class=\"n\">reversible</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">name</span><span class=\"p\">):</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">name</span> <span class=\"o\">=</span> <span class=\"n\">name</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">state_forwards</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">app_label</span><span class=\"p\">,</span> <span class=\"n\">state</span><span class=\"p\">):</span>\n        <span class=\"k\">pass</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">database_forwards</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">app_label</span><span class=\"p\">,</span> <span class=\"n\">schema_editor</span><span class=\"p\">,</span> <span class=\"n\">from_state</span><span class=\"p\">,</span> <span class=\"n\">to_state</span><span class=\"p\">):</span>\n        <span class=\"n\">schema_editor</span><span class=\"o\">.</span><span class=\"n\">execute</span><span class=\"p\">(</span><span class=\"s2\">&quot;CREATE EXTENSION IF NOT EXISTS </span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span> <span class=\"o\">%</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">name</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">database_backwards</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">app_label</span><span class=\"p\">,</span> <span class=\"n\">schema_editor</span><span class=\"p\">,</span> <span class=\"n\">from_state</span><span class=\"p\">,</span> <span class=\"n\">to_state</span><span class=\"p\">):</span>\n        <span class=\"n\">schema_editor</span><span class=\"o\">.</span><span class=\"n\">execute</span><span class=\"p\">(</span><span class=\"s2\">&quot;DROP EXTENSION </span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span> <span class=\"o\">%</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">name</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">describe</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"s2\">&quot;Creates extension </span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span> <span class=\"o\">%</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">name</span>\n\n    <span class=\"nd\">@property</span>\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">migration_name_fragment</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"s2\">&quot;create_extension_</span><span class=\"si\">%s</span><span class=\"s2\">&quot;</span> <span class=\"o\">%</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">name</span>\n</code></pre></div>\n</section>","rootId":"module-django.db.migrations.operations","toc":[{"title":"Oibríochtaí Scéime","anchor":"schema-operations","children":[{"title":"CreateModel","anchor":"createmodel","children":[]},{"title":"DeleteModel","anchor":"deletemodel","children":[]},{"title":"Athainm Model","anchor":"renamemodel","children":[]},{"title":"AlterModelTable","anchor":"altermodeltable","children":[]},{"title":"``AlterModelTableComment ``","anchor":"altermodeltablecomment","children":[]},{"title":"AlterUniquetogether","anchor":"alteruniquetogether","children":[]},{"title":"AlterIndexTogether","anchor":"alterindextogether","children":[]},{"title":"AlterOrderWithReas","anchor":"alterorderwithrespectto","children":[]},{"title":"Roghanna AlterModel","anchor":"altermodeloptions","children":[]},{"title":"Bainisteoirí AlterModel","anchor":"altermodelmanagers","children":[]},{"title":"Addfield","anchor":"addfield","children":[]},{"title":"``Réimse a bhaint ``","anchor":"removefield","children":[]},{"title":"Alterfield","anchor":"alterfield","children":[]},{"title":"Renamefield","anchor":"renamefield","children":[]},{"title":"AddIndex","anchor":"addindex","children":[]},{"title":"``Táimhainnéacs ``","anchor":"removeindex","children":[]},{"title":"Renameindex","anchor":"renameindex","children":[]},{"title":"``Adsrianadh ``","anchor":"addconstraint","children":[]},{"title":"Removeconstraint","anchor":"removeconstraint","children":[]},{"title":"AlterConstraint","anchor":"alterconstraint","children":[]}]},{"title":"Oibríochtaí Speisialta","anchor":"special-operations","children":[{"title":"Runsql","anchor":"runsql","children":[]},{"title":"Runpython","anchor":"runpython","children":[]},{"title":"``ScaoilteDatabaseandstát ``","anchor":"separatedatabaseandstate","children":[]}]},{"title":"Catagóir oibríochta","anchor":"operation-category","children":[]},{"title":"Do chuid féin a scríobh","anchor":"writing-your-own","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"Tagairt API","url":"/ga/6.0/ref/"}],"prev":{"docname":"ref/middleware","title":"Meán-earraí","url":"/ga/6.0/ref/middleware/"},"next":{"docname":"ref/models/index","title":"Samhla","url":"/ga/6.0/ref/models/"},"formats":{"html":"/ga/6.0/ref/migration-operations/","markdown":"/ga/6.0/ref/migration-operations.md","json":"/ga/6.0/ref/migration-operations.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/ref/migration-operations.txt","official":"https://docs.djangoproject.com/ga/6.0/ref/migration-operations/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}