Γιογιό-μεταναστεύσεις είναι ένα βοηθητικό πρόγραμμα μετανάστευσης σχήμα της βάσης δεδομένων, χρησιμοποιώντας απλό SQL και DB-API.
Τι κάνει YoYo-μεταναστεύσεις;
Καθώς οι εφαρμογές βάσεων δεδομένων εξελίσσονται, οι αλλαγές στο σχήμα της βάσης δεδομένων είναι συχνά απαιτείται. Αυτά συνήθως μπορεί να γραφτεί ως SQL scripts τα εφάπαξ περιέχει ΔΗΜ / ALTER δηλώσεις τραπέζι (αν και οποιαδήποτε SQL ή python script μπορεί να χρησιμοποιηθεί με yoyo-μεταναστεύσεις).
Γιογιό-μεταναστεύσεις παρέχει ένα εργαλείο γραμμής εντολών για την ανάγνωση ενός καταλόγου αυτών των σεναρίων και την εφαρμογή τους στη βάση δεδομένων σας, όπως απαιτείται.
υποστήριξη βάσης δεδομένων
Οι PostgreSQL, MySQL και SQLite βάσεις δεδομένων που υποστηρίζονται.
Χρήση
Γιογιό-μεταναστεύσεις συνήθως γίνεται επίκληση ως ένα σενάριο γραμμή εντολών.
Παραδείγματα:
Διαβάστε όλες τις μεταναστεύσεις από μεταναστεύσεις κατάλογο και την εφαρμογή τους σε μια βάση δεδομένων PostgreSQL:
yoyo μεταναστεύουν ισχύουν ./migrations/ postgres: // user: password @ localhost / βάση δεδομένων
Μεταναστεύσεις Επαναφορά ίσχυε προηγουμένως για μια βάση δεδομένων MySQL:
yoyo μεταναστεύουν επαναφοράς ./migrations/ MySQL: // user: password @ localhost / βάση δεδομένων
Ανανεώνετε (δηλαδή επαναφορά στη συνέχεια να εφαρμόσει και πάλι) μεταναστεύσεις σε μια βάση δεδομένων SQLite σε /home/sheila/important-data.db θέση:
Γιογιό-μεταναστεύουν Ανατροφοδοτήστε ./migrations/ SQLite: ////home/sheila/important-data.db
Από προεπιλογή, γιο-γιο-μεταναστεύσεις εκκίνησή του σε αλληλεπιδραστική λειτουργία, σας ζητά για κάθε αρχείο της μετανάστευσης πριν από την εφαρμογή του, καθιστώντας το εύκολο να επιλέξετε ποια μεταναστεύσεις να ισχύουν και επαναφοράς.
Ο κατάλογος μεταναστεύσεις πρέπει να περιλαμβάνει μια σειρά από σενάρια μετανάστευσης. Κάθε σενάριο μετανάστευση είναι ένα αρχείο Python (.py) που περιέχει μια σειρά από βήματα. Κάθε βήμα θα πρέπει να περιλαμβάνει ένα ερώτημα μετανάστευσης και (προαιρετικά) ένα ερώτημα επαναφοράς. Για παράδειγμα:
#
# Αρχείου: μεταναστεύσεις / 0001.create-foo.py
#
βήμα (
& Nbsp? "CREATE TABLE foo (id INT, μπαρ VARCHAR (20), PRIMARY KEY (id))",
& Nbsp? "DROP TABLE foo",
)
Το όνομα του κάθε αρχείου (χωρίς το .py επέκταση) χρησιμοποιείται ως το αναγνωριστικό για κάθε μετάβαση. Οι μεταναστεύσεις που εφαρμόζονται για όνομα αρχείου, γι 'αυτό είναι χρήσιμο να αναφέρουμε τα αρχεία σας χρησιμοποιώντας μια ημερομηνία (π.χ. «20090115-xyz.py») ή με άλλο αύξοντα αριθμού.
yoyo μεταναστεύουν δημιουργεί έναν πίνακα στη βάση δεδομένων στόχο σας, _yoyo_migration, να παρακολουθείτε ποια μεταναστεύσεις έχουν εφαρμοστεί.
Βήματα μπορούν επίσης να λάβουν μια προαιρετική ignore_errors επιχείρημα, το οποίο πρέπει να είναι ένα από τα εφαρμόζουν, κατάργηση, ή όλα. Αν στο προηγούμενο παράδειγμα ο πίνακας foo μπορεί να έχουν ήδη δημιουργηθεί με άλλο τρόπο, θα μπορούσαμε να προσθέσουμε ignore_errors = 'Apply' για το βήμα για να επιτρέψει τις μεταναστεύσεις να συνεχιστεί ανεξάρτητα από:
#
# Αρχείου: 0001.create-foo.py
#
βήμα (
& Nbsp? "CREATE TABLE foo (id INT, μπαρ VARCHAR (20), PRIMARY KEY (id))",
& Nbsp? "DROP TABLE foo",
& Nbsp? Ignore_errors = «εφαρμογή»,
)
Βήματα μπορεί επίσης να είναι python απαιτητών αντικείμενα που παίρνουν μια σύνδεση βάσης δεδομένων ως ενιαίο επιχείρημα τους. Για παράδειγμα:
#
# Αρχείου: 0002.update_keys.py
#
def do_step (Conn):
& Nbsp? Δρομέας = conn.cursor ()
& Nbsp? Cursor.execute (
& Nbsp? "Insert Into sysinfo"
& Nbsp? "(Osname, όνομα, έκδοση, έκδοση, καμάρα)"
& Nbsp? "Τιμές (% s,% s,% s,% s,% s% s)",
& Nbsp? Os.uname ()
& Nbsp?)
βήμα (do_step)
Ασφάλεια κωδικού πρόσβασης
Μπορείτε συνήθως προσδιορίζουν βάση δεδομένων όνομα χρήστη και τον κωδικό πρόσβασής σας ως μέρος της συμβολοσειράς σύνδεσης βάσης δεδομένων στη γραμμή εντολών. Σε ένα μηχάνημα πολλαπλών χρηστών, οι άλλοι χρήστες θα μπορούσαν να δουν τον κωδικό πρόσβασης βάσης δεδομένων σας στον κατάλογο διαδικασία.
Το -p ή --prompt-κωδικό σημαία προκαλεί yoyo-μεταναστεύουν σε ερώτηση για κωδικό πρόσβασης, αγνοώντας κάθε κωδικό που καθορίζεται στη συμβολοσειρά σύνδεσης. Αυτός ο κωδικός πρόσβασης δεν θα είναι διαθέσιμες σε άλλους χρήστες μέσω της λίστας διαδικασία του συστήματος.
Σύνδεση εγχόρδων caching
Η πρώτη φορά που εκτελείτε το γιο-γιο-μεταναστεύουν σε ένα νέο σύνολο των μεταναστεύσεων, θα σας ζητηθεί εάν θέλετε να cache τη συμβολοσειρά σύνδεσης βάσης δεδομένων σε ένα αρχείο που ονομάζεται .yoyo-μεταναστεύουν στον κατάλογο των μεταναστεύσεων.
Αυτή η μνήμη cache είναι τοπική στον κατάλογο των μεταναστεύσεων, έτσι επόμενες εκτελέσεις στο ίδιο σύνολο της μετανάστευσης δεν χρειάζεται τη συμβολοσειρά σύνδεσης βάσης δεδομένων που θα καθοριστεί.
Αυτό εξοικονομεί πληκτρολογώντας, αποφεύγει βάση δεδομένων όνομα χρήστη και τον κωδικό σας δείχνει στις λίστες της διαδικασίας και μειώνει τον κίνδυνο κατά λάθος τρέχει yoyo-μεταναστεύουν σε λάθος βάση δεδομένων (δηλαδή, εκτελώντας ξανά την επίσπευση της έναρξης yoyo-μεταναστεύουν στην ιστορία εντολή σας όταν έχετε μετακινηθεί σε μια διαφορετικό κατάλογο).
Εάν δεν θέλετε αυτό το αρχείο προσωρινής αποθήκευσης που θα χρησιμοποιηθεί, προσθέστε την παράμετρο --no-cache για τις επιλογές της γραμμής εντολών
Τι είναι καινούργιο σε αυτή την έκδοση:.
- Διόρθωση για κακοδιαχείριση 4.2.3 απελευθέρωση
Τι είναι καινούργιο στην έκδοση 4.2.1:
- Διόρθωση bug για προηγούμενη έκδοση, η οποία παραλείπεται κρίσιμα αρχεία.
Τι είναι καινούργιο στην έκδοση 4.1.6:
- Προστέθηκε υποστήριξη των Windows (χάρη στον Πέτρο Shinners)
Τι είναι καινούργιο στην έκδοση 4.1.5:
- Διαμόρφωση χειριστές υλοτομίας έτσι ώστε οι -v αιτίες διακόπτη εξόδου για να μεταβείτε στην κονσόλα (χάρη στον Andrew Nelis).
- `` -v`` διακόπτης γραμμής εντολών δεν είναι πλέον παίρνει ένα επιχείρημα, αλλά μπορεί να καθοριστεί πολλές φορές αντί (δηλαδή χρήση `` -vvv`` αντί του `` -v3``). `` --verbosity`` Διατηρεί την παλιά συμπεριφορά.
Τι είναι καινούργιο στην έκδοση 4.1.3:
- Αλλαγή προεπιλεγμένο όνομα πίνακα μετανάστευσης πίσω στο «_yoyo_migration»
Απαιτήσεις :
- Python
Τα σχόλια δεν βρέθηκε