Yoyo-migrații este un utilitar bază de date de migrare schemă folosind SQL simplu și DB-API.
Ce yoyo-migrații face?
Ca aplicații de baze de date evoluează, modificări schema bazei de date sunt adesea necesare. Acestea pot fi, de obicei, scris ca script-uri SQL unice care conțin CREATE / ALTER masă (deși orice script SQL sau python poate fi utilizat cu yoyo-migrații).
Yoyo-migrații oferă un instrument de linie de comandă pentru citirea unui director de astfel de script-uri și aplicarea acestora în baza de date după cum este necesar.
sprijin colecțiilor de date
Baze de date PostgreSQL, MySQL și SQLite sunt acceptate.
Folosire
Yoyo-migrații este, de obicei invocat ca un script linie de comandă.
Exemple:
Citește toate migrațiile de migrații director și a le aplica la o bază de date PostgreSQL:
yoyo-Migrarea aplică ./migrations/ Postgres: // utilizator: parola @ localhost / baze de date
Migrații Rollback aplicat anterior la o bază de date MySQL:
yoyo-Migrarea retroactivitate ./migrations/ mysql: // utilizator: parola @ localhost / baze de date
Reaplicati (de exemplu, rollback, apoi se aplică din nou) migrații a unei baze de date SQLite la Locul de amplasare /home/sheila/important-data.db:
yoyo-migra sqlite reaplicați ./migrations/: ////home/sheila/important-data.db
În mod implicit, yoyo-migrații pornește într-un mod interactiv, care vă solicită pentru fiecare fisier migrare înainte de ao aplica, făcându-l ușor să aleagă migrații să aplice și rollback.
Directorul migrații ar trebui să conțină o serie de script-uri de migrație. Fiecare scenariu migrația este un fișier python (.py) care conține o serie de etape. Fiecare pas ar trebui să cuprindă o interogare de migrație și (opțional) o interogare retroactivitate. De exemplu:
#
# Fișier: migrații / 0001.create-foo.py
#
etapa (
& Nbsp; "CREATE TABLE foo (id INT, bar VARCHAR (20), PRIMAR KEY (id))",
& Nbsp; "DROP TABLE foo",
)
Numele fișierului fiecărui fișier (fără extensia .py) este folosit ca identificator pentru fiecare migrație. Migrații sunt aplicate în ordine nume de fișier, asa ca este util pentru a numi fișierele utilizând o dată (de exemplu, "20090115-xyz.py") sau cu un alt număr de incrementare.
yoyo-Migrarea creează un tabel în baza de date țintă, _yoyo_migration, pentru a urmări migrațiile care au fost aplicate.
Pașii pot lua, de asemenea, o ignore_errors argument opțional, care trebuie să fie una dintre aplică, retroactivitate, sau toate. Dacă în exemplul anterior alim masă să fi fost deja create prin alte mijloace, am putea adăuga ignore_errors = 'aplica' la pas pentru a permite migrarea să continue, indiferent:
#
# Fișier: 0001.create-foo.py
#
etapa (
& Nbsp; "CREATE TABLE foo (id INT, bar VARCHAR (20), PRIMAR KEY (id))",
& Nbsp; "DROP TABLE foo",
& Nbsp; ignore_errors = 'aplica',
)
Pași poate fi, de asemenea, Python obiecte nevărsate care au o conexiune bază de date ca argument unică. De exemplu:
#
# Fișier: 0002.update_keys.py
#
def do_step (Conn):
& Nbsp; cursor = conn.cursor ()
& Nbsp; cursor.execute (
& Nbsp; "INSERT INTO SysInfo"
& Nbsp; "(osname, hostname, de presă, versiunea, arc)"
& Nbsp; "VALORI (% s,% s,% s,% s,% s% s)",
& Nbsp; os.uname ()
& Nbsp;)
etapa (do_step)
de securitate Password
În mod normal specificați numele de utilizator și parola bazei de date ca parte a șirul de conectare a bazei de date în linia de comandă. Pe o mașină multi-user, utilizatorii ar putea vedea parola bazei de date în lista de proces.
-p Sau --prompt-parolă cauze yoyo-migrează spre solicite o parolă, ignorând orice parolă specificată în șirul de conexiune. Această parolă nu va fi disponibil pentru alți utilizatori prin intermediul listă proces sistemului.
Conexiune șir de cache
Prima dată când rulați yoyo-migra la un nou set de migrații, veți fi întrebat dacă doriți să cache șirul de conectare baza de date într-un fișier denumit .yoyo-migrează în directorul migrațiilor.
Acest cache este local in directorul migrațiilor, așa ruleaza ulterioare pe același set de migrație nu au nevoie de șirul de conectare baza de date să fie specificate.
Acest lucru economisește tastarea, evită numele de utilizator și parola bazei de date care arată în locuri de proces și micșorează riscul de a rula accidental yoyo-migrează în baza de date greșit (de exemplu, prin re-rularea o intrare anterioară-yoyo migrează în istoricul comanda, atunci când s-au mutat la o director diferit).
Dacă nu doriți acest fișier cache pentru a fi utilizate, adăugați parametrul --no-cache pentru opțiunile de linie de comandă
Ce este nou în această versiune:.
- Fix pentru prost 4.2.3 lansare
Ce este nou în versiunea 4.2.1:
- Bugfix pentru eliberare precedent, care a omis fișiere critice.
Ce este nou în versiunea 4.1.6:
- Adaugata ferestre sprijin (datorită lui Peter Shinners)
Ce este nou în versiunea 4.1.5:
- Configurare Stivuitoare de logare, astfel încât -v cauzele comutatorului ieșire pentru a merge la consola (datorită Andrew Nelis).
- `` -v`` comutator de linie de comandă nu mai are un argument, dar pot fi specificate mai multe ori în loc (de exemplu, utilizarea `` -vvv`` în loc de `` -v3``). `` --verbosity`` Păstrează vechiul comportament.
Ce este nou în versiunea 4.1.3:
- implicit schimbat numele tabelă migrației înapoi la "_yoyo_migration"
Cerințe :
- Python
Comentariile nu a fost găsit