---
title: "SchemaEditor"
version: 5.2
locale: ga
source: https://docs.djangoproject.com/ga/5.2/ref/schema-editor/
canonical: https://djangodocs.dev/ga/5.2/ref/schema-editor/
---
# `SchemaEditor`

#### `class BaseDatabaseSchemaEditor`

Tá córas imirce Django roinnte ina dhá chuid; an loighic chun na hoibríochtaí ba chóir a reáchtáil a ríomh agus a stóráil (django.db.migrations), agus an ciseal tearbhaithe bunachar sonraí a chasann rudaí cosúil le “samhail a chruthú” nó “réimse a scriosadh” isteach i SQL - arb é post an SchemaEditor\`.

Ní dócha go mbeidh tú ag iarraidh idirghníomhú go díreach le SchemaEditor mar ghnáthfhorbróir ag baint úsáide as Django, ach más mian leat do chóras imirce féin a scríobh, nó má tá riachtanais níos airde agat, tá sé i bhfad níos deise ná SQL a scríobh.

Soláthraíonn gach cúltaca bunachar sonraí i Django a leagan féin de “SchemaEditor”, agus tá sé inrochtana i gcónaí tríd an mbainisteoir comhthéacs connection.schema\_editor () :

```
with connection.schema_editor() as schema_editor:
    schema_editor.delete_model(MyModel)
```

Caithfear é a úsáid tríd an mbainisteoir comhthéacs mar ligeann sé seo dó rudaí cosúil le hidirbhearta agus SQL iarchurtha a bhainistiú (cosúil le srianta ForeignKey\` a chruthú).

Nochtann sé gach oibríocht féideartha mar mhodhanna, ba chóir iad a ghlaoch san ord is mian leat go ndéanfaí athruithe a chur i bhfeidhm. Ní féidir roinnt oibríochtaí nó cineálacha athraithe féideartha indéanta ar gach bunachar sonraí - mar shampla, ní thacaíonn MyISAM le príomhshrianta eachtracha.

Má tá tú ag scríobh nó ag cothabháil cúltaca bunachar sonraí tríú páirtí do Django, beidh ort cur i bhfeidhm SchemaEditor a sholáthar d'fhonn oibriú le feidhmiúlacht imirce Django - áfach, fad is atá do bhunachar sonraí réasúnta caighdeánach maidir lena úsáid SQL agus dearadh coibhneasta, ba cheart go mbeadh tú in ann ceann de na ranganna Django SchemaEditor ionsuite agus an comhréiteach beagán.

## Modhanna

### fhorghníomhú () \`

#### `BaseDatabaseSchemaEditor.execute(sql, params=())`

Feidhmíonn sé an ráiteas SQL a rith isteach, le paraiméadair má sholáthraítear iad. Is fillteán é seo timpeall na ngnáthchúrsóirí bunachar sonraí a cheadaíonn an SQL a ghabháil chuig comhad .sql más mian leis an úsáideoir.

### create\_model () \`\`

#### `BaseDatabaseSchemaEditor.create_model(model)`

Cruthaíonn sé tábla nua sa bhunachar sonraí don tsamhail a chuirtear ar fáil, chomh maith le haon srianta nó innéacsanna uathúla a theastaíonn uaidh.

### scrios\_model () \`\`

#### `BaseDatabaseSchemaEditor.delete_model(model)`

Titeann tábla an tsamhail sa bhunachar sonraí mar aon le haon srianta nó innéacsanna uathúla atá aige.

### Add\_index () \`\`

#### `BaseDatabaseSchemaEditor.add_index(model, index)`

Cuireann sé `index` le tábla samhail\`.

### innéacs a bhaint () \`\`

#### `BaseDatabaseSchemaEditor.remove_index(model, index)`

Baineann sé `index` ó thábla samhail\`.

### Innéacs athainmnithe () \`\`

#### `BaseDatabaseSchemaEditor.rename_index(model, old_index, new_index)`

Athainmnigh ```old_index ``ó thábla ``model``` go new\_index\`.

### Add\_Constraint () \`\`

#### `BaseDatabaseSchemaEditor.add_constraint(model, constraint)`

Cuireann sé `sriant` le tábla samhail\`.

### scrionadh a bhaint () \`

#### `BaseDatabaseSchemaEditor.remove_constraint(model, constraint)`

Baineann sé `sriant` ó thábla samhail\`.

### alter\_unique\_together () \`\`

#### `BaseDatabaseSchemaEditor.alter_unique_together(model, old_unique_together, new_unique_together)`

Athraíonn luach samhail 's:attr: ~django.db.models.options.unique\_Together; cuirfidh sé seo srianta uathúla leis nó bainfidh sé seo ó thábla an tsamhail go dtí go n-oireann siad an luach nua.

### alter\_index\_le chéile () \`\`

#### `BaseDatabaseSchemaEditor.alter_index_together(model, old_index_together, new_index_together)`

Athraíonn sé luach index\_together samhail; cuirfidh sé seo innéacsanna nó bainfidh sé as tábla an tsamhail go dtí go n-oireann siad an luach nua.

### alter\_db\_table () \`\`

#### `BaseDatabaseSchemaEditor.alter_db_table(model, old_db_table, new_db_table)`

Athainmnigh tábla an tsamhail ó `old_db_table` go `new_db_table`.

### alter\_db\_table\_comment () \`\`

#### `BaseDatabaseSchemaEditor.alter_db_table_comment(model, old_db_table_comment, new_db_table_comment)`

Athraigh trácht tábla “model” go new\_db\_table\_comment\`.

### alter\_db\_tablespace () \`\`

#### `BaseDatabaseSchemaEditor.alter_db_tablespace(model, old_db_tablespace, new_db_tablespace)`

Bogann sé tábla an tsamhail ó spás tábla amháin go ceann eile.

### Add\_field () \`\`

#### `BaseDatabaseSchemaEditor.add_field(model, field)`

Cuireann sé colún (nó uaireanta iolrach) le tábla an tsamhail chun an réimse a léiriú. Cuirfidh sé seo innéacsanna nó srian uathúil leis freisin má tá db\_index = true\` nó `unique=true` sa réimse.

Más é an réimse `ManyTomanyField` gan luach do ```trí ``,,```,, , 'in ionad colún a chruthú, déanfaidh sé tábla chun an caidreamh a léiriú. Má chuirtear trí ar fáil, is neamh-op é.

Más `ForeignKey` an réimse, cuirfidh sé seo an srian eochair eachtrach leis an gcolún freisin.

### `réimse a bhaint ()`

#### `BaseDatabaseSchemaEditor.remove_field(model, field)`

Baineann sé an colúin/na colúin a léiríonn an réimse ó thábla an tsamhail, mar aon le haon srianta uathúla, príomhshrianta eachtracha, nó innéacsanna de bharr an réimse sin.

Más ManyTomanyField é an réimse gan luach do through , bainfidh sé an tábla a cruthaíodh chun an caidreamh a rianú. Má chuirtear trí ar fáil, is neamh-op é.

### alter\_field () \`\`

#### `BaseDatabaseSchemaEditor.alter_field(model, old_field, new_field, strict=False)`

Athraíonn sé seo an réimse ar an tsamhail ón sean-réimse go dtí an ceann nua. Áirítear leis seo ainm an cholúin a athrú (the:attr: ~django.db.models.field.db\_column tréith), cineál an réimse a athrú (má athraíonn an rang réimse), stádas NULL\` an réimse a athrú, srianta agus innéacsanna uathúla réimse a chur nó a bhaint, agus ceann scríbe srianta Foreign a athrú.

Is é an claochlú is coitianta nach féidir leis seo a dhéanamh ná ManyTomanyField\` a athrú go gnáthRéimse nó a mhalairt; Ní féidir le Django é seo a dhéanamh gan sonraí a chailleadh, agus mar sin diúltóidh sé é a dhéanamh. Ina áit sin, ba chóir :meth: .remove\_field agus:meth: .add\_field a ghlaoch ar leithligh.

Má tá an `supports_combined_alters` sa bhunachar sonraí, déanfaidh Django iarracht an oiread díobh seo a dhéanamh i nglao bunachar sonraí amháin agus is féidir; ar shlí eile, eiseoidh sé ráiteas ALTER ar leithligh do gach athrú, ach ní eiseoidh sé ALTERanna nuair nach bhfuil aon athrú ag teastáil.

## tréithe

Ba chóir gach tréith a mheas go léite amháin mura luaitear a mhalairt.

### `nasc`

#### `SchemaEditor.connection`

Réad ceangail leis an mbunachar sonraí. Is tréith úsáideach den nasc ná `alias` ar féidir a úsáid chun ainm an bhunachar sonraí atá á rochtain agat a chinneadh.

\<data-migrations-and-multiple-databases\>Tá sé seo úsáideach agus imirce sonraí á ndéanamh le haghaidh: ref: imirce le bunachair sonraí iolracha .
