---
title: "Παρέχοντας αρχικά δεδομένα στα μοντέλα"
version: 3.1
locale: el
source: https://docs.djangoproject.com/el/3.1/howto/initial-data/
canonical: https://djangodocs.dev/el/3.1/howto/initial-data/
---
# Παρέχοντας αρχικά δεδομένα στα μοντέλα

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

## Προσθήκη αρχικών δεδομένων με τη χρήση των migrations

If you want to automatically load initial data for an app, create a
[data migration](/el/3.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/3.1/topics/testing/overview/#test-case-serialized-rollback).

## Providing data with fixtures

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

Ένα fixture είναι μια συλλογή από δεδομένα την οποία το Django ξέρει πως να την κάνει import σε μια βάση δεδομένων. Ο πιο ευθύς τρόπος να δημιουργήσετε ένα fixture, αν έχετε ήδη κάποια data, είναι να χρησιμοποιήσετε την διαχειριστική εντολή [`manage.py dumpdata`](/el/3.1/ref/django-admin/#django-admin-dumpdata). Ή, μπορείτε να γράψετε τα fixtures με το χέρι. Τα fixtures μπορούν να γραφτούν σε μορφή JSON, XML ή YAML (με το [PyYAML](https://pyyaml.org/) εγκατεστημένο, φυσικά) αρχείων. Το [εγχειρίδιο για serialization](/el/3.1/topics/serialization/) περιέχει περισσότερες λεπτομέρειες σχετικά με αυτού του είδους των υποστηριζόμενων [μορφών serialization](/el/3.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/3.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/3.1/ref/django-admin/#django-admin-loaddata), the data will be read
from the fixture and re-loaded into the database. Note this means that if you
change one of the rows created by a fixture and then run [`loaddata`](/el/3.1/ref/django-admin/#django-admin-loaddata)
again, you’ll wipe out any changes you’ve made.

### Που βρίσκει το Django τα fixture αρχεία

Από προεπιλογή, το Django κοιτάει στο φάκελο `fixtures` μέσα σε κάθε app για fixtures. Μπορείτε να ρυθμίσετε τη λίστα [`FIXTURE_DIRS`](/el/3.1/ref/settings/#std-setting-FIXTURE_DIRS) από επιπρόσθετους φακέλους όπου το Django θα ψάξει.

Όταν τρέχετε την εντολή [`manage.py loaddata`](/el/3.1/ref/django-admin/#django-admin-loaddata), μπορείτε, επίσης, να προσδιορίσετε ένα path σε ένα fixture αρχείο, το οποίο παρακάμπτει (overrides) την εύρεση στους συνηθισμένους φακέλους.

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