DaingneáinLink to this heading
Is bailiúchán comhaid é daingneamh ina bhfuil ábhar sraitheach an bhunachar sonraí. Tá ainm uathúil ag gach daingneán, agus is féidir na comhaid a chuimsíonn an daingneán a dháileadh thar eolairí iolracha, in iolrfheidhmchláir.
Conas daingneán a tháirgeadhLink to this heading
<dumpdata>Is féidir daingneáin a ghiniúint trí:djadmin: `manage.py dumpdata `. Is féidir daingneáin saincheaptha a ghiniúint freisin trí úsáid a bhaint as go díreach: doc: `uirlisí sraitheach' nó fiú trí iad a lámhscríobh </topics/serialization>.
Conas daingneán a úsáidLink to this heading
<topics-testing-fixtures>Is féidir daingneáin a úsáid chun an bunachar sonraí a réamh-dhaonrú le sonraí le haghaidh: ref: `tástálacha `:
class MyTestCase(TestCase):
fixtures = ["fixture-label"]
nó chun roinnt: ref: sonraí tosaigh `a sholáthar ag baint úsáide as an ordú <initial-data-via-fixtures>:djadmin: `loaddata:
django-admin loaddata <fixture label>
Conas a aimsítear daingneáinLink to this heading
Déanfaidh Django cuardach sna háiteanna seo le haghaidh daingneáin:
In aon eolaire atá liostaithe sa socrú: FIXTURE_DIRS
Sa chosán litriúil a ainmníonn an daingneán
Luchtálfaidh Django aon daingneáin agus gach daingneán a aimsíonn sé sna háiteanna seo a mheaitseálann leis na hainmneacha daingneáin Má tá síneadh comhad ag an daingneán ainmnithe, ní luchtálfar ach daingneáin den chineál sin. Mar shampla:
django-admin loaddata mydata.json
ní dhéanfaí ach daingneáin JSON ar a dtugtar mydata a luchtú. Caithfidh an síneadh daingneáin a fhreagraíonn d'ainm cláraithe a: ref: serializer <serialization-formats>`(m.sh., ``json` nó xml).
Má fhágann tú na síntí, cuardóidh Django gach cineál daingneáin atá ar fáil le haghaidh daingneáin mheaitseála. Mar shampla:
django-admin loaddata mydata
lorgaíodh aon daingneán d'aon chineál daingneáin ar a dtugtar mydata`. Dá mbeadh `mydata.json i eolaire daingneáin, luchtálfaí an daingneán sin mar daingneán JSON.
Is féidir comhpháirteanna eolaire a bheith san áireamh ar na daingneáin a Cuirfear na heolairí seo san áireamh sa chosán cuardaigh. Mar shampla:
django-admin loaddata foo/bar/mydata.json
chuardódh sé <app_label>/fixtures/foo/bar/mydata.json do gach feidhmchlár suiteáilte, /foo/bar/mydata.json do gach eolaire in:setting: FIXTURE_DIRS, agus an cosán litriúil foo/bar <dirname>/mydata.json.
Ordú luchtaithe daingneoLink to this heading
Is féidir daingneáin iolracha a shonrú san ionchur céanna. Mar shampla:
django-admin loaddata mammals birds insects
nó i rang cásanna tástála:
class AnimalTestCase(TestCase):
fixtures = ["mammals", "birds", "insects"]
Leanann an t-ord ina luchtaítear daingneáin an t-ord ina bhfuil siad liostaithe, cibé acu agus an t-ordú bainistíochta á úsáid agat nó nuair a liostaítear iad i rang an cháis tástála mar a thaispeántar thuas.
Sna samplaí seo, luchtálfar na daingneáin go léir darb ainm mamaí ``ó gach feidhmchlár (san ord ina sainmhínítear feidhmchláir in:setting: `INSTALLED_APPS`) ar dtús. Ina dhiaidh sin, luchtálfar na daingneáin ``éan go léir, agus ina dhiaidh sin beidh na daingneáin ``feithidí ``go léir ina dhiaidh sin.
Bí ar an eolas má thacaíonn cúltaca an bhunachar sonraí le srianta leibhéal sraithe, déanfar na srianta seo a sheiceáil ag deireadh an idirbheart. D'fhéadfadh earráid ualaigh a bheith mar thoradh ar aon chaidrimh ar fud daingneáin mura dtacaíonn cumraíocht an bhunachar sonraí le seiceáil srianta iarchurtha (féach do na doiciméid MySQL mar shampla).
Conas a shábháil daingneáin sa bhunachar sonraíLink to this heading
Nuair a phróiseáiltear comhaid daingneáin, sábhálfar na sonraí chuig an mbunachar sonraí mar atá. Samhail sainmhínithe: meth: ~django.db.models.model.save ní ghlaofar modhanna, agus glaofar aon chomharthaí: ~django.db.models.signals.pre_save nó:data: ~django.db.models.signals.post_save le raw=true ós rud é nach bhfuil ach tréithe áitiúil don tsamhail múnla. B'fhéidir gur mhaith leat, mar shampla, láimhseálaithe a dhíchumasú a dhéanann rochtain ar réimsí gaolmhara nach bhfuil i láthair le linn luchtú daingneáin agus a ardódh eisceacht ar shlí eile
from django.db.models.signals import post_save
from .models import MyModel
def my_handler(**kwargs):
# disable the handler during fixture loading
if kwargs["raw"]:
return
...
post_save.connect(my_handler, sender=MyModel)
D'fhéadfá maisitheoir a scríobh freisin chun an loighic seo a chumhdú:
from functools import wraps
def disable_for_loaddata(signal_handler):
"""
Decorator that turns off signal handlers when loading fixture data.
"""
@wraps(signal_handler)
def wrapper(*args, **kwargs):
if kwargs["raw"]:
return
signal_handler(*args, **kwargs)
return wrapper
@disable_for_loaddata
def my_handler(**kwargs): ...
Bí ar an eolas go ndéanfaidh an loighic seo na comharthaí a dhíchumasú aon uair a dhíshealtar daingneáin, ní hamháin le linn: djadmin: loaddata.
Daingneáin chomhbhLink to this heading
Féadfar daingneáin a chomhbhrúite i bhformáid zip, gz`, bz2`, lz`, nó xz. Mar shampla:
django-admin loaddata mydata.json
lorg aon cheann de mydata.json`, mydata.json.zip`, mydata.json.gz`, mydata.json.gz`, mydata.json.xz`, mydata.json.lz`, nó mydata.json.xz. Úsáidtear an chéad chomhad atá laistigh de chartlann comhbhrúite.
Tabhair faoi deara má aimsítear dhá daingneán leis an ainm céanna ach cineál daingneáin difriúil (mar shampla, má aimsíodh mydata.json agus mydata.xml.gz` san eolaire daingneáin chéanna), cuirfear deireadh leis an suiteáil daingneáin, agus bainfear aon sonraí suiteáilte sa ghlao chu:djadmin: loaddata ón mbunachar sonraí.
Daingneáin sonrach le bunachar sonraíLink to this heading
Má tá tú i socrú ilbhunachar sonraí, b'fhéidir go mbeadh sonraí daingneáin agat ar mhaith leat a luchtú ar bhunachar sonraí amháin, ach ní ar bhunachar sonraí eile. Sa chás seo, is féidir leat aitheantóir bunachar sonraí a chur isteach in ainmneacha do daingneáin.
Mar shampla, má tá bunachar sonraí users sainithe ag do shuíomh: DATABASES, ainmnigh an daingneán mydata.users.json nó mydata.users.json.gz agus ní luchtálfar an daingneán ach nuair a shonraíonn tú gur mhaith leat sonraí a luchtú isteach sa bhunachar sonraí users.