Γεννήτρια μετεγκατάστασης βάσης δεδομένων — Διαφορά σχήματος σε σενάρια SQL Up / Down
Γεννήτρια μεταναστεύσεων βάσης δεδομένων
Επικόλληση του τρέχοντος σχήματος στα αριστερά και του στόχου σχήματος στα δεξιά —
είτε ως DDL CREATE TABLE είτε ως JSON σχήματος από τον
Σχεδιαστή ERD — και στη συνέχεια παραγωγή ενός σεναρίου προς τα εμπρός (up)
και του αντίστοιχου σεναρίου επαναφοράς (down): νέοι και διαγραμμένοι πίνακες, προστιθέμενες, αφαιρούμενες και τροποποιημένες
στήλες, και αλλαγές ξένων κλειδιών, με διαφυγές για MySQL, PostgreSQL, SQL Server, SQLite, Oracle ή τυπικό SQL.
Τίποτα δεν μεταφορτώνεται· η διαφορά εκτελείται στο πρόγραμμα περιήγησης.
1 — Πριν (τρέχον σχήμα)
2 — Μετά (σχήμα-στόχος)
3 — Δημιουργία μετεγκατάστασης
Οι προτάσεις ομαδοποιούνται ανά πίνακα· ο έλεγχος της εξόδου γίνεται πριν από την εκτέλεση.
Δεν έχει δημιουργηθεί ακόμη διαφορά.
Πεδίο εφαρμογής: πρόκειται για δομική διαφορά πινάκων, στηλών, πρωτευόντων κλειδιών, δυνατότητας μηδενικών τιμών,
προεπιλογών και ξένων κλειδιών. Ευρετήρια, σκανδάλες, προβολές και συμπλήρωση δεδομένων είναι εκτός πεδίου και προστίθενται χειροκίνητα. Το SQLite δεν μπορεί να τροποποιήσει στήλη επιτόπου· για τις αλλαγές αυτές εκδίδεται σχόλιο που ζητά τη δημιουργία εκ νέου του πίνακα.
Τι είναι μια μετεγκατάσταση βάσης δεδομένων;
Μια μετεγκατάσταση είναι σενάριο με έκδοση που αλλάζει το σχήμα μιας βάσης: δημιουργία αυτού του πίνακα, προσθήκη εκείνης της στήλης, διαγραφή ενός ευρετηρίου. Οι ομάδες εφαρμόζουν τις μετεγκαταστάσεις με σειρά, ώστε κάθε περιβάλλον — ανάπτυξη, δοκιμαστικό, παραγωγή — να περνά από την ίδια διαδρομή εκδόσεων αντί να επεξεργάζεται χειροκίνητα σε μορφές που δεν ταιριάζουν πια με τον κώδικα. Κάθε μετεγκατάσταση συνήθως αποστέλλεται σε δύο μέρη: το up εφαρμόζει την αλλαγή, το down την αναιρεί, ώστε μια προβληματική κυκλοφορία να μπορεί να επαναφερθεί με τον ίδιο τρόπο που εισήχθη.
Οι μετεγκαταστάσεις που διαγράφουν πίνακες ή στήλες είναι καταστροφικές — το σενάριο down δεν μπορεί να επαναφέρει διαγραμμένα δεδομένα. Πριν από μια μετεγκατάσταση που αφαιρεί οτιδήποτε, απαιτείται αντίγραφο ασφαλείας (ή τουλάχιστον εξαγωγή των επηρεαζόμενων πινάκων).