Yoyo-Migrationen ist ein Datenbankschema Migrationsprogramm mit Normal SQL und DB-API.
Was yoyo-Migrationen tun?
Als Datenbank-Anwendungen entwickeln, werden Änderungen an der Datenbankschema oft erforderlich. Diese können in der Regel als Einmal SQL-Skripts, die CREATE / ALTER TABLE (obwohl jede SQL oder Python-Skript kann mit Jo-Jo-Migrationen verwendet werden) geschrieben werden.
Yoyo-Migrationen eine Kommandozeilen-Tool zum Lesen eines Verzeichnisses solcher Skripte und deren Anwendung auf die Datenbank nach Bedarf.
Datenbankunterstützung
PostgreSQL, MySQL und SQLite-Datenbanken unterstützt.
Verwendung
Yoyo-Migrationen ist in der Regel als Kommandozeilen-Skripts.
Beispiele:
Alle Migrationen von Verzeichnis-Migrationen und sie auf einer PostgreSQL-Datenbank:
Jo-Jo-migrate gelten ./migrations/ postgres: // user: password @ localhost / Datenbank
Rollback-Migrationen zuvor auf eine MySQL-Datenbank verwendet:
Jo-Jo-migrate Rollback ./migrations/ mysql: // user: password @ localhost / Datenbank
Wenden (dh Rollback wieder zu rechnen) Migrationen zu einer SQLite-Datenbank am Standort /home/sheila/important-data.db:
Jo-Jo-Migration Reapply ./migrations/ sqlite: ////home/sheila/important-data.db
Standardmäßig wird yoyo-Migrationen in einem interaktiven Modus, die Sie auffordert, für jeden Migrationsdatei, bevor Sie es, so dass es leicht zu entscheiden, welche Migrationen anzuwenden und Rollback.
Die Migrationen Verzeichnis sollte eine Reihe von Migrationsskripts enthalten. Jedes Migrationsscript ist eine Python-Datei (Py), die eine Reihe von Schritten. Jeder Schritt sollte eine Migration Abfrage und (optional) eine Rollback-Abfrage enthalten. Zum Beispiel:
#
# File: Migrationen / 0001.create-foo.py
#
Schritt (
& Nbsp; "CREATE TABLE foo (id INT, Bar VARCHAR (20), PRIMARY KEY (id))",
& Nbsp; "DROP TABLE foo",
)
Der Dateiname jeder Datei (ohne die Endung .py) als Kennung für jede Migration verwendet. Migrationen sind in Dateinamen Reihenfolge angewendet, so ist es sinnvoll, Ihre Dateien zu nennen mit einem Datum (zB '20090115-xyz.py') oder mit einem anderen fortlaufende Nummer.
Jo-Jo-migrate erstellt eine Tabelle in Ihrer Zieldatenbank, _yoyo_migration, zu verfolgen, welche Migrationen angewendet wurden.
Schritte kann auch ein optionales Argument IGNORE_ERRORS, die eine der Anwendung, Rollback, oder alle sein müssen. Wenn im vorherigen Beispiel die Tabelle foo vielleicht schon auf andere Weise erstellt wurden, konnten wir IGNORE_ERRORS hinzufügen = "Übernehmen" zu dem Schritt, damit die Migration unabhängig weiter:
#
# File: 0001.create-foo.py
#
Schritt (
& Nbsp; "CREATE TABLE foo (id INT, Bar VARCHAR (20), PRIMARY KEY (id))",
& Nbsp; "DROP TABLE foo",
& Nbsp; IGNORE_ERRORS = "Übernehmen",
)
Schritte können auch python aufrufbare Objekte, die eine Datenbankverbindung als ihr einziges Argument nehmen. Zum Beispiel:
#
# File: 0002.update_keys.py
#
def do_step (conn):
& Nbsp; cursor = conn.cursor ()
& Nbsp; cursor.execute (
& Nbsp; "INSERT INTO sysinfo"
& Nbsp; "(osname, Hostname, Freigabe, Ausführung, Bogen)"
& Nbsp; "VALUES (% s,% s,% s,% s,% s% s)",
& Nbsp; os.uname ()
& Nbsp;)
Schritt (do_step)
Passwortschutz
Sie in der Regel Ihre Datenbank Benutzernamen und Kennwort angeben, als Teil der Datenbankverbindungszeichenfolge in der Befehlszeile. Auf einem Multi-User-Maschine können andere Benutzer Ihre Datenbank-Kennwort in der Prozessliste anzuzeigen.
Die -p oder --prompt-Kennwort-Flag verursacht Jojo-migrieren, um nach dem Passwort fragen, jede in der Verbindungszeichenfolge angegebene Passwort ignoriert. Dieses Passwort wird nicht für andere Benutzer über die Prozessliste des Systems.
Verbindungszeichen Caching
Das erste Mal, wenn Sie Jojo-Migration auf eine neue Reihe von Migrationen ausführen, werden Sie gefragt, ob Sie auf die Datenbank-Verbindungszeichenfolge in der Datei .yoyo-Migration in der Migrationen Verzeichnis zwischengespeichert werden soll.
Dieser Cache ist lokal auf dem Migrationen Verzeichnis, damit nachfolgenden Läufen auf der gleichen Migrations Satz müssen nicht den Datenbankverbindungszeichenfolge angegeben werden.
Dies erspart die Eingabe vermeidet Datenbank Benutzername und Passwort Auftritt in Prozesslisten und verringert die Gefahr, dass der laufende Jojo-Migration auf der falschen Datenbank (zB durch wieder eine frühere Jojo-Migration Eintrag im Befehlsverlauf, wenn Sie eine umgezogen anderen Verzeichnis).
Wenn Sie nicht möchten, dass dieser Cache-Datei zu verwenden, fügen Sie die --no-cache Parameter an die Kommandozeilenoptionen
Was ist neu in dieser Pressemitteilung:.
- Fix für Missmanagement 4.2.3 Release
Was ist neu in Version 4.2.1:
- Bugfix für vorherigen Version, die wichtige Dateien weggelassen.
Was ist neu in Version 4.1.6:
- Hinzugefügt Fenster Unterstützung (Dank an Peter Shinners)
Was ist neu in Version 4.1.5:
- Konfigurieren der Protokollierung-Handler so, dass die Schalter -v Ursachen Ausgabe auf der Konsole gehen (Dank an Andrew Nelis).
- `` -v`` Befehlszeilenschalter für mehr als ein Argument, sondern kann mehrfach angegeben werden, statt (dh Nutzung `` -vvv`` anstatt `` -v3``). `` --verbosity`` Behält das alte Verhalten.
Was ist neu in Version 4.1.3:
- Geänderte Standardmigrationstabellennamen zurück zu '_yoyo_migration'
Anforderungen :
- Python
Kommentare nicht gefunden