# Τεκμηρίωση του Django - 5.2.8

# How to integrate Django with a legacy database

Ενώ το Django είναι κατάλληλο για να αναπτύσσετε καινούργιες εφαρμογές, είναι δυνατόν να το ενσωματώσετε με legacy databases. Το Django περιλαμβάνει μερικές λειτουργίες για να αυτοματοποιήσει όσο γίνεται αυτή τη διαδικασία. Με άλλα λόγια, σκοπός αυτής της διαδικασίας είναι: έχετε μια υπάρχουσα βάση δεδομένων για την οποία δεν υπάρχουν Django μοντέλα. Θέλετε, λοιπόν, αντί να ξαναχτίσετε τη βάση αυτή γράφοντας τα μοντέλα σας που θα αντικατοπτρίζουν τη βάση να κάνετε την αντίστροφη διαδικασία, ήτοι να χρησιμοποιήσετε την υπάρχουσα βάση για να φτιάξετε τα μοντέλα σας.

Αυτό το άρθρο προϋποθέτει ότι γνωρίζετε τα βασικά του Django, όπως έχουν καλυφθεί στον οδηγό μας.

Αφού έχετε εγκαταστήσει και σετάρει το Django, θα ακολουθήσετε την παρακάτω γενική διαδικασία για να ενσωματώσετε το Django με μια ήδη υπάρχουσα βάση δεδομένων.

## Δώστε στο Django τις παραμέτρους της βάσης δεδομένων σας

Θα χρειαστεί να πείτε στο Django ποιες είναι οι παράμετροι για σύνδεση με την βάση δεδομένων καθώς και το όνομα της βάσης. Αυτό το κάνετε επεξεργάζοντας τη ρύθμιση `DATABASES` και ορίζοντας τιμές στα ακόλουθα keys για την σύνδεση `'default'`:

- `NAME`

- `ENGINE`

- `USER`

- `PASSWORD`

- `HOST`

- `PORT`

## Αυτόματη δημιουργία των μοντέλων

Django comes with a utility called `inspectdb` that can create models by introspecting an existing database. You can view the output by running this command:

    $ python manage.py inspectdb

Save this as a file by using standard Unix output redirection:

    $ python manage.py inspectdb > models.py

Αυτή η λειτουργία προορίζεται ως μια συντόμευση, όχι ως παραγωγή οριστικών μοντέλων. Δείτε στο `εγχειρίδιο του inspectdb` για περισσότερες πληροφορίες.

Αφού κάνετε τυχόν εκκαθαρίσεις-αναδιατάξεις στα μοντέλα σας, ονομάστε το αρχείο `models.py` και βάλτε το μέσα στο φάκελο της εφαρμογής σας. Κατόπιν, προσθέστε την εφαρμογή αυτή στη ρύθμιση `INSTALLED_APPS`.

Από προεπιλογή, η εντολή `inspectdb` δημιουργεί αδιαχείριστα μοντέλα (unmanaged models). Δηλαδή, το attribute μέσα στην κλάση `Meta` του μοντέλου `managed = False`, λέει στο Django να μην διαχειριστεί τη δημιουργία, επεξεργασία και διαγραφή αυτού του πίνακα:

    class Person(models.Model):
        id = models.IntegerField(primary_key=True)
        first_name = models.CharField(max_length=70)

        class Meta:
            managed = False
            db_table = "CENSUS_PERSONS"

If you do want to allow Django to manage the table’s lifecycle, you’ll need to change the `managed` option above to `True` (or remove it because `True` is its default value).

## Εγκατάσταση των βασικών πινάκων Django

Next, run the `migrate` command to install any extra needed database records such as admin permissions and content types:

    $ python manage.py migrate

## Δοκιμές και αλλαγές

Αυτά είναι τα βασικά βήματα – από δω και μπρος θα θέλετε να πειράξετε τα μοντέλα που δημιούργησε το Django για εσάς για να δουλεύουν όπως ακριβώς θέλετε. Προσπαθήστε να προσπελάσετε τα δεδομένα σας μέσω του Django database API και επίσης προσπαθήσετε να επεξεργαστείτε τα objects σας μέσω του Django admin site και επεξεργαστείτε το αρχείο του μοντέλου σας καταλλήλως.