---
title: "How to provide initial data for models"
version: 5.1
locale: el
source: https://docs.djangoproject.com/el/5.1/howto/initial-data/
canonical: https://djangodocs.dev/el/5.1/howto/initial-data/
---
# How to provide initial data for models

It’s sometimes useful to prepopulate your database with hard-coded data when
you’re first setting up an app. You can provide initial data with migrations or
fixtures.

## Provide initial data with migrations

To automatically load initial data for an app, create a
[data migration](/el/5.1/topics/migrations/#data-migrations). Migrations are run when setting up the
test database, so the data will be available there, subject to [some
limitations](/el/5.1/topics/testing/overview/#test-case-serialized-rollback).

## Provide data with fixtures

You can also provide data using [fixtures](/el/5.1/topics/db/fixtures/#fixtures-explanation),
however, this data isn’t loaded automatically, except if you use
[`TransactionTestCase.fixtures`](/el/5.1/topics/testing/tools/#django.test.TransactionTestCase.fixtures).

Ένα fixture είναι μια συλλογή από δεδομένα την οποία το Django ξέρει πως να την κάνει import σε μια βάση δεδομένων. Ο πιο ευθύς τρόπος να δημιουργήσετε ένα fixture, αν έχετε ήδη κάποια data, είναι να χρησιμοποιήσετε την διαχειριστική εντολή [`manage.py dumpdata`](/el/5.1/ref/django-admin/#django-admin-dumpdata). Ή, μπορείτε να γράψετε τα fixtures με το χέρι. Τα fixtures μπορούν να γραφτούν σε μορφή JSON, XML ή YAML (με το [PyYAML](https://pyyaml.org/) εγκατεστημένο, φυσικά) αρχείων. Το [εγχειρίδιο για serialization](/el/5.1/topics/serialization/) περιέχει περισσότερες λεπτομέρειες σχετικά με αυτού του είδους των υποστηριζόμενων [μορφών serialization](/el/5.1/topics/serialization/#serialization-formats).

As an example, though, here’s what a fixture for a `Person` model might look
like in JSON:

```js
[
  {
    "model": "myapp.person",
    "pk": 1,
    "fields": {
      "first_name": "John",
      "last_name": "Lennon"
    }
  },
  {
    "model": "myapp.person",
    "pk": 2,
    "fields": {
      "first_name": "Paul",
      "last_name": "McCartney"
    }
  }
]
```

Και εδώ φαίνεται το ίδιο fixture σε μορφή YAML:

```yaml
- model: myapp.person
  pk: 1
  fields:
    first_name: John
    last_name: Lennon
- model: myapp.person
  pk: 2
  fields:
    first_name: Paul
    last_name: McCartney
```

Θα αποθηκεύσετε αυτά τα δεδομένα σε ένα φάκελο `fixtures` μέσα στην εφαρμογή σας.

You can load data by calling [`manage.py loaddata`](/el/5.1/ref/django-admin/#django-admin-loaddata)
`<fixturename>`, where `<fixturename>` is the name of the fixture file
you’ve created. Each time you run [`loaddata`](/el/5.1/ref/django-admin/#django-admin-loaddata), the data will be read
from the fixture and reloaded into the database. Note this means that if you
change one of the rows created by a fixture and then run [`loaddata`](/el/5.1/ref/django-admin/#django-admin-loaddata)
again, you’ll wipe out any changes you’ve made.

### Tell Django where to look for fixture files

By default, Django looks for fixtures in the `fixtures` directory inside each
app, so the command `loaddata sample` will find the file
`my_app/fixtures/sample.json`. This works with relative paths as well, so
`loaddata my_app/sample` will find the file
`my_app/fixtures/my_app/sample.json`.

Django also looks for fixtures in the list of directories provided in the
[`FIXTURE_DIRS`](/el/5.1/ref/settings/#std-setting-FIXTURE_DIRS) setting.

To completely prevent default search from happening, use an absolute path to
specify the location of your fixture file, e.g. `loaddata /path/to/sample`.

> **Namespace your fixture files**
>
> Django will use the first fixture file it finds whose name matches, so if
> you have fixture files with the same name in different applications, you
> will be unable to distinguish between them in your `loaddata` commands.
> The easiest way to avoid this problem is by *namespacing* your fixture
> files. That is, by putting them inside a directory named for their
> application, as in the relative path example above.

> **See also**
>
> Τα fixtures χρησιμοποιούνται, επίσης, από το [testing framework](/el/5.1/topics/testing/tools/#topics-testing-fixtures) για να βοηθήσουν να στηθεί ένα σταθερό περιβάλλον για τεστ.
