---
title: "Daingneáin"
version: 6.0
locale: ga
source: https://docs.djangoproject.com/ga/6.0/topics/db/fixtures/
canonical: https://djangodocs.dev/ga/6.0/topics/db/fixtures/
---
# Daingneáin

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.

> **See also**
>
> - [Conas sonraí tosaigh a sholáthar do mhúnlaí](/ga/6.0/howto/initial-data/)

## Conas daingneán a tháirgeadh

\<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áid

\<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 :

```python
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:

```shell
django-admin loaddata <fixture label>
```

## Conas a aimsítear daingneáin

Déanfaidh Django cuardach sna háiteanna seo le haghaidh daingneáin:

1. In eolaire daingneáin de gach feidhmchlár suiteáilte
2. In aon eolaire atá liostaithe sa socrú: FIXTURE\_DIRS
3. 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:

```shell
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:

```shell
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:

```shell
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 daingneo

Is féidir daingneáin iolracha a shonrú san ionchur céanna. Mar shampla:

```shell
django-admin loaddata mammals birds insects
```

nó i rang cásanna tástála:

```python
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](https://dev.mysql.com/doc/refman/en/constraint-foreign-key.html) mar shampla).

## Conas a shábháil daingneáin sa bhunachar sonraí

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 chomhbh

Féadfar daingneáin a chomhbhrúite i bhformáid `zip`, gz\`, bz2\`, lz\`, nó `xz`. Mar shampla:

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

> **MySQL le MyISAM agus daingneáin**
>
> Ní thacaíonn inneall stórála MyISAM MySQL le hidirbhearta nó srianta, mar sin má úsáideann tú MyISAM, ní gheobhaidh tú bailíochtú sonraí daingneáin, ná rolladh siar má aimsítear comhad idirbheart iolracha.

## Daingneáin sonrach le bunachar sonraí

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