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