---
title: "Παρέχοντας αρχικά δεδομένα στα μοντέλα"
version: 2.1
locale: el
source: https://docs.djangoproject.com/el/2.1/howto/initial-data/
canonical: https://djangodocs.dev/el/2.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/2.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/2.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/2.1/topics/testing/tools/#django.test.TransactionTestCase.fixtures).

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

Για παράδειγμα, παρακάτω φαίνεται ένα fixture για ένα μοντέλο με το όνομα `Person` σε 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` μέσα στην εφαρμογή σας.

Η φόρτωση των δεδομένων είναι εύκολη: απλώς καλέστε την διαχειριστική εντολή [`manage.py loaddata`](/el/2.1/ref/django-admin/#django-admin-loaddata) `<fixturename>`, όπου `<fixturename>` είναι το όνομα του fixture αρχείου που δημιουργήσατε. Κάθε φορά που τρέχετε την εντολή [`loaddata`](/el/2.1/ref/django-admin/#django-admin-loaddata), τα δεδομένα θα διαβαστούν από το fixture και θα επαναφορτωθούν στη βάση δεδομένων. Αυτό σημαίνει ότι αν αλλάξατε κάτι στη βάση δεδομένων και μετά ξανατρέξετε την εντολή [`loaddata`](/el/2.1/ref/django-admin/#django-admin-loaddata), θα χάσετε τις αλλαγές αυτές αφού θα φορτωθούν εκ νέου τα fixtures.

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

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

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

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