Yoyo-migracija yra duomenų bazės migracijos įrankis naudojant paprastą SQL ir DB-API.
Ką Yoyo-migracija daryti?
Kaip duomenų bazių vystytis, dažnai reikalaujama pakeitimų duomenų bazės. Tai dažniausiai gali būti parašytas kaip vienkartinių SQL scenarijus, kurių sudėtyje yra CREATE / ALTER TABLE pareiškimus (nors bet SQL arba python skriptas gali būti naudojamas su yoyo-migracija).
Yoyo-migracija suteikia komandinės eilutės įrankis, skirtas skaityti tokių scenarijų katalogą ir taikyti jas savo duomenų bazę, kaip reikalaujama.
Duomenų bazės palaikymas
PostgreSQL, MySQL ir SQLite duomenų bazės yra palaikomi.
Naudojimas
Yoyo-migracija paprastai remiamasi kaip komandinės eilutės scenarijų.
pavyzdžiai:
Skaityti visus migracijas iš katalogų migracijos ir taikyti juos į PostgreSQL duomenų bazėje:
yoyo-migruoti taikyti ./migrations/ postgres: // vartotojas: slaptažodis @ localhost / Duomenų bazės
Atmesti migracija anksčiau kreipėsi į MySQL duomenų bazės:
yoyo-migruoti atmesti ./migrations/ MySQL: // vartotojas: slaptažodis @ localhost / Duomenų bazės
Pakartotinai (ty atmesti tada taikyti vėl) migraciją į SQLite duomenų baze vietos /home/sheila/important-data.db:
yoyo-migruoja Pakartotinai ./migrations/ SQLite: ////home/sheila/important-data.db
Pagal nutylėjimą, Yoyo-migracija prasideda interaktyviu režimu, paskatino jus kiekvienam migracijos failą prieš jį taikyti, todėl lengva pasirinkti, kurią migracija taikyti ir atmesti.
Migracija katalogas turėtų būti migracijos skriptus seriją. Kiekvienas migracijos skriptas yra python failas (.py), kuriame yra rengiami keliais etapais. Kiekvienas žingsnis turėtų apimti migracijos užklausą ir (pasirinktinai) yra kartojamo užklausą. Pavyzdžiui:
#
# Failų: migracija / 0001.create-foo.py
#
žingsnis (
& Nbsp; "CREATE TABLE foo (id INT, baras VARCHAR (20) pirminis raktas (id))",
& Nbsp; "DROP TABLE foo"
)
Kiekvieno failo (be .py išplėtimo) failo vardas yra naudojamas kaip kiekvieno migracijos identifikatorių. Migracija yra taikomos filename tvarka, todėl ji naudinga pavadinti failus naudojant datą (pvz "20090115-xyz.py") arba su kitu incrementing skaičius.
yoyo-migruoti sukuria lentelę jūsų tikslinė duomenų bazės, _yoyo_migration, sekti, kuris migracija buvo taikomi.
Žingsniai taip pat gali būti pasirenkamoji argumentų ignore_errors, kurie turi būti vienas iš taikoma, rollback, ar visi. Jei ankstesniame pavyzdyje lentelėje foo gali jau buvo sukurtos kitokiu būdu, galėtume pridėti ignore_errors = "taikyti" prie žingsnio leisti migracija ir toliau, nepriklausomai:
#
# Failą: 0001.create-foo.py
#
žingsnis (
& Nbsp; "CREATE TABLE foo (id INT, baras VARCHAR (20) pirminis raktas (id))",
& Nbsp; "DROP TABLE foo"
& Nbsp; ignore_errors = "taikyti",
)
Žingsniai taip pat gali būti python pareikalavimo objektai, imtis duomenų bazę kaip savo bendros argumentas. Pavyzdžiui:
#
# Failą: 0002.update_keys.py
#
Def do_step (Conn):
& Nbsp; žymeklis = conn.cursor ()
& Nbsp; cursor.execute (
& Nbsp; "INSERT INTO Sysinfo"
& Nbsp; "(osname, hostname, atleiskite, versija, arka)
& Nbsp; "VERTYBĖS (% s% s% s% s% s% s)",
& Nbsp; os.uname ()
& Nbsp;)
žingsnis (do_step)
Apsauga slaptažodžiu
Jūs paprastai nurodyti savo duomenų bazės vartotojo vardą ir slaptažodį kaip duomenų bazės prisijungimo eilutę į komandų eilutę. Dėl daugelio vartotojų mašina, kiti vartotojai gali peržiūrėti savo duomenų bazės slaptažodį procesų sąrašą.
-p Arba --prompt-slaptažodžio vėliava sukelia yoyo-migruoja į paprašys slaptažodžio, neatsižvelgiant į nurodytą ryšio eilutę slaptažodį. Šis slaptažodis nebus prieinami kitiems vartotojams per sistemos procesų sąrašą.
Ryšio styginių spartinimo
Pirmą kartą paleidus yoyo-migruoti į naują rinkinį migraciją, jums bus klausiama, ar norite, kad talpyklos duomenų bazę eilutę failo pavadinimu .yoyo-migruoja į migracijos kataloge.
Ši atmintis yra vietos į migracijos kataloge, todėl vėlesni veikia toje pačioje migracijos rinkinys nereikia duomenų bazę eilutę turi būti nurodyta.
Tai taupo rašyti, išvengiama savo duomenų bazės vartotojo vardą ir slaptažodį rodyti procese sąrašus ir nesumažina netyčia veikia yoyo-migruoja apie klaidingą duomenų bazę (ty iš naujo paleisti ankstesnę yoyo-migruoja įrašą į savo komandų istoriją, kai persikėlė į riziką skiriasi katalogas).
Jei nenorite šį failą talpyklos turi būti naudojama, pridėti no-cache parametrą į komandų eilutės parinktis
Kas naujo , šioje laidoje:.
- fiksavimas mismanaged 4.2.3 išleidimo
Kas naujo 4.2.1 versija:
- Ištaisyta ankstesnę išleidimo, kuris praleisti svarbius failus.
Kas naujo versijos 4.1.6:
- Pridėta langai parama (dėka Peter Shinners)
Kas naujo versijos 4.1.5:
- Konfigūruoti kirtimo tvarkytojai taip, kad -V jungiklis priežastys išėjimas eiti į konsolę (ačiū Andrew Nelis).
- `` -v`` komandinės eilutės jungiklis nebėra trunka argumentą, tačiau gali būti nurodyta daugelį kartų, o ne (ty naudoti `` -vvv`` vietoj `` -v3``). `` --verbosity`` Išlaiko seną elgesį.
Kas naujo versijos 4.1.3:
- Pasikeitė nutylėjimą migracija lentelės pavadinimą atgal į "_yoyo_migration"
Reikalavimai :
- Python
Komentarai nerastas