SchemaEditorLink to this heading

class BaseDatabaseSchemaEditorLink to this definition

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 () ``:

Code
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.

ModhannaLink to this heading

``fhorghníomhú () `Link to this heading

BaseDatabaseSchemaEditor.execute(sql, params=())Link to this definition

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 () ``Link to this heading

BaseDatabaseSchemaEditor.create_model(model)Link to this definition

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 () ``Link to this heading

BaseDatabaseSchemaEditor.delete_model(model)Link to this definition

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

``Add_index () ``Link to this heading

BaseDatabaseSchemaEditor.add_index(model, index)Link to this definition

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

``innéacs a bhaint () ``Link to this heading

BaseDatabaseSchemaEditor.remove_index(model, index)Link to this definition

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

``Innéacs athainmnithe () ``Link to this heading

BaseDatabaseSchemaEditor.rename_index(model, old_index, new_index)Link to this definition

Athainmnigh old_index ``ó thábla ``model go new_index`.

``Add_Constraint () ``Link to this heading

BaseDatabaseSchemaEditor.add_constraint(model, constraint)Link to this definition

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

``scrionadh a bhaint () `Link to this heading

BaseDatabaseSchemaEditor.remove_constraint(model, constraint)Link to this definition

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

``alter_unique_together () ``Link to this heading

BaseDatabaseSchemaEditor.alter_unique_together(model, old_unique_together, new_unique_together)Link to this definition

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 () ``Link to this heading

BaseDatabaseSchemaEditor.alter_index_together(model, old_index_together, new_index_together)Link to this definition

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 () ``Link to this heading

BaseDatabaseSchemaEditor.alter_db_table(model, old_db_table, new_db_table)Link to this definition

Athainmnigh tábla an tsamhail ó old_db_table go new_db_table.

``alter_db_table_comment () ``Link to this heading

BaseDatabaseSchemaEditor.alter_db_table_comment(model, old_db_table_comment, new_db_table_comment)Link to this definition

Athraigh trácht tábla “model” go new_db_table_comment`.

``alter_db_tablespace () ``Link to this heading

BaseDatabaseSchemaEditor.alter_db_tablespace(model, old_db_tablespace, new_db_tablespace)Link to this definition

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

``Add_field () ``Link to this heading

BaseDatabaseSchemaEditor.add_field(model, field)Link to this definition

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 ()Link to this heading

BaseDatabaseSchemaEditor.remove_field(model, field)Link to this definition

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 () ``Link to this heading

BaseDatabaseSchemaEditor.alter_field(model, old_field, new_field, strict=False)Link to this definition

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éitheLink to this heading

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

nascLink to this heading

SchemaEditor.connectionLink to this definition

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 `.