{"title":"Παρέχοντας αρχικά δεδομένα στα μοντέλα","version":"2.0","locale":"el","docname":"howto/initial-data","url":"/el/2.0/howto/initial-data/","canonical":"https://djangodocs.dev/el/2.0/howto/initial-data/","summary":"It’s sometimes useful to pre-populate your database with hard-coded data when you’re first setting up an app.","html":"<h1>Παρέχοντας αρχικά δεδομένα στα μοντέλα<a class=\"heading-anchor\" href=\"#providing-initial-data-for-models\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>It’s sometimes useful to pre-populate your database with hard-coded data when\nyou’re first setting up an app. You can provide initial data with migrations or\nfixtures.</p>\n<section id=\"providing-initial-data-with-migrations\">\n<h2>Προσθήκη αρχικών δεδομένων με τη χρήση των migrations<a class=\"heading-anchor\" href=\"#providing-initial-data-with-migrations\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>If you want to automatically load initial data for an app, create a\n<a class=\"reference internal\" href=\"/el/2.0/topics/migrations/#data-migrations\"><span class=\"std std-ref\">data migration</span></a>. Migrations are run when setting up the\ntest database, so the data will be available there, subject to <a class=\"reference internal\" href=\"/el/2.0/topics/testing/overview/#test-case-serialized-rollback\"><span class=\"std std-ref\">some\nlimitations</span></a>.</p>\n</section>\n<section id=\"providing-data-with-fixtures\">\n<span id=\"initial-data-via-fixtures\"></span><h2>Providing data with fixtures<a class=\"heading-anchor\" href=\"#providing-data-with-fixtures\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>You can also provide data using fixtures, however, this data isn’t loaded\nautomatically, except if you use <a class=\"reference internal\" href=\"/el/2.0/topics/testing/tools/#django.test.TransactionTestCase.fixtures\" title=\"django.test.TransactionTestCase.fixtures\"><code class=\"xref py py-attr docutils literal notranslate\">TransactionTestCase.fixtures</code></a>.</p>\n<p>Ένα fixture είναι μια συλλογή από δεδομένα την οποία το Django ξέρει πως να την κάνει import σε μια βάση δεδομένων. Ο πιο ευθύς τρόπος να δημιουργήσετε ένα fixture, αν έχετε ήδη κάποια data, είναι να χρησιμοποιήσετε την διαχειριστική εντολή <a class=\"reference internal\" href=\"/el/2.0/ref/django-admin/#django-admin-dumpdata\"><code class=\"xref std std-djadmin docutils literal notranslate\">manage.py dumpdata</code></a>. Ή, μπορείτε να γράψετε τα fixtures με το χέρι. Τα fixtures μπορούν να γραφτούν σε μορφή JSON, XML ή YAML (με το <a class=\"reference external\" href=\"https://pyyaml.org/\">PyYAML</a> εγκατεστημένο, φυσικά) αρχείων. Το <a class=\"reference internal\" href=\"/el/2.0/topics/serialization/\"><span class=\"doc\">εγχειρίδιο για serialization</span></a> περιέχει περισσότερες λεπτομέρειες σχετικά με αυτού του είδους των υποστηριζόμενων <a class=\"reference internal\" href=\"/el/2.0/topics/serialization/#serialization-formats\"><span class=\"std std-ref\">μορφών serialization</span></a>.</p>\n<p>Για παράδειγμα, παρακάτω φαίνεται ένα fixture για ένα μοντέλο με το όνομα <code class=\"docutils literal notranslate\">Person</code> σε JSON μορφή:</p>\n<div class=\"code-block\" data-language=\"js\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Js</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Js code\"><code><span class=\"p\">[</span>\n  <span class=\"p\">{</span>\n    <span class=\"s2\">&quot;model&quot;</span><span class=\"o\">:</span> <span class=\"s2\">&quot;myapp.person&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;pk&quot;</span><span class=\"o\">:</span> <span class=\"mf\">1</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;fields&quot;</span><span class=\"o\">:</span> <span class=\"p\">{</span>\n      <span class=\"s2\">&quot;first_name&quot;</span><span class=\"o\">:</span> <span class=\"s2\">&quot;John&quot;</span><span class=\"p\">,</span>\n      <span class=\"s2\">&quot;last_name&quot;</span><span class=\"o\">:</span> <span class=\"s2\">&quot;Lennon&quot;</span>\n    <span class=\"p\">}</span>\n  <span class=\"p\">},</span>\n  <span class=\"p\">{</span>\n    <span class=\"s2\">&quot;model&quot;</span><span class=\"o\">:</span> <span class=\"s2\">&quot;myapp.person&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;pk&quot;</span><span class=\"o\">:</span> <span class=\"mf\">2</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;fields&quot;</span><span class=\"o\">:</span> <span class=\"p\">{</span>\n      <span class=\"s2\">&quot;first_name&quot;</span><span class=\"o\">:</span> <span class=\"s2\">&quot;Paul&quot;</span><span class=\"p\">,</span>\n      <span class=\"s2\">&quot;last_name&quot;</span><span class=\"o\">:</span> <span class=\"s2\">&quot;McCartney&quot;</span>\n    <span class=\"p\">}</span>\n  <span class=\"p\">}</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Και εδώ φαίνεται το ίδιο fixture σε μορφή YAML:</p>\n<div class=\"code-block\" data-language=\"none\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">None</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"None code\"><code>- model: myapp.person\n  pk: 1\n  fields:\n    first_name: John\n    last_name: Lennon\n- model: myapp.person\n  pk: 2\n  fields:\n    first_name: Paul\n    last_name: McCartney\n</code></pre></div>\n<p>Θα αποθηκεύσετε αυτά τα δεδομένα σε ένα φάκελο <code class=\"docutils literal notranslate\">fixtures</code> μέσα στην εφαρμογή σας.</p>\n<p>Η φόρτωση των δεδομένων είναι εύκολη: απλώς καλέστε την διαχειριστική εντολή <a class=\"reference internal\" href=\"/el/2.0/ref/django-admin/#django-admin-loaddata\"><code class=\"xref std std-djadmin docutils literal notranslate\">manage.py loaddata</code></a> <code class=\"docutils literal notranslate\">&lt;fixturename&gt;</code>, όπου <code class=\"docutils literal notranslate\">&lt;fixturename&gt;</code> είναι το όνομα του fixture αρχείου που δημιουργήσατε. Κάθε φορά που τρέχετε την εντολή <a class=\"reference internal\" href=\"/el/2.0/ref/django-admin/#django-admin-loaddata\"><code class=\"xref std std-djadmin docutils literal notranslate\">loaddata</code></a>, τα δεδομένα θα διαβαστούν από το fixture και θα επαναφορτωθούν στη βάση δεδομένων. Αυτό σημαίνει ότι αν αλλάξατε κάτι στη βάση δεδομένων και μετά ξανατρέξετε την εντολή <a class=\"reference internal\" href=\"/el/2.0/ref/django-admin/#django-admin-loaddata\"><code class=\"xref std std-djadmin docutils literal notranslate\">loaddata</code></a>, θα χάσετε τις αλλαγές αυτές αφού θα φορτωθούν εκ νέου τα fixtures.</p>\n<section id=\"where-django-finds-fixture-files\">\n<h3>Που βρίσκει το Django τα fixture αρχεία<a class=\"heading-anchor\" href=\"#where-django-finds-fixture-files\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Από προεπιλογή, το Django κοιτάει στο φάκελο <code class=\"docutils literal notranslate\">fixtures</code> μέσα σε κάθε app για fixtures. Μπορείτε να ρυθμίσετε τη λίστα <a class=\"reference internal\" href=\"/el/2.0/ref/settings/#std-setting-FIXTURE_DIRS\"><code class=\"xref std std-setting docutils literal notranslate\">FIXTURE_DIRS</code></a> από επιπρόσθετους φακέλους όπου το Django θα ψάξει.</p>\n<p>Όταν τρέχετε την εντολή <a class=\"reference internal\" href=\"/el/2.0/ref/django-admin/#django-admin-loaddata\"><code class=\"xref std std-djadmin docutils literal notranslate\">manage.py loaddata</code></a>, μπορείτε, επίσης, να προσδιορίσετε ένα path σε ένα fixture αρχείο, το οποίο παρακάμπτει (overrides) την εύρεση στους συνηθισμένους φακέλους.</p>\n<aside class=\"admonition admonition-seealso\" role=\"note\">\n<p class=\"admonition-title\">Δείτε επίσης</p>\n<p>Τα fixtures χρησιμοποιούνται, επίσης, από το <a class=\"reference internal\" href=\"/el/2.0/topics/testing/tools/#topics-testing-fixtures\"><span class=\"std std-ref\">testing framework</span></a> για να βοηθήσουν να στηθεί ένα σταθερό περιβάλλον για τεστ.</p>\n</aside>\n</section>\n</section>","rootId":"providing-initial-data-for-models","toc":[{"title":"Προσθήκη αρχικών δεδομένων με τη χρήση των migrations","anchor":"providing-initial-data-with-migrations","children":[]},{"title":"Providing data with fixtures","anchor":"providing-data-with-fixtures","children":[{"title":"Που βρίσκει το Django τα fixture αρχεία","anchor":"where-django-finds-fixture-files","children":[]}]}],"breadcrumbs":[{"docname":"howto/index","title":"Οδηγοί «Πως-να»","url":"/el/2.0/howto/"}],"prev":{"docname":"howto/error-reporting","title":"Αναφορά σφαλμάτων","url":"/el/2.0/howto/error-reporting/"},"next":{"docname":"howto/jython","title":"Django on Jython","url":"/el/2.0/howto/jython/"},"formats":{"html":"/el/2.0/howto/initial-data/","markdown":"/el/2.0/howto/initial-data.md","json":"/el/2.0/howto/initial-data.json"},"source":"https://github.com/django/django/blob/stable/2.0.x/docs/howto/initial-data.txt","official":"https://docs.djangoproject.com/el/2.0/howto/initial-data/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10"],"inLocales":["en","zh-hans","fr","ja","id","pt-br","ko","es","el","pl"]}