Frage

Ich habe eine standardmäßige Pylons Pyramid-Anwendung, die SQLAlchemy für die Datenbankpersistenz verwendet.

Ich habe ein SQLAlchemy-migrate-Repo eingerichtet und habe es funktionsfähig, aber ich möchte wirklich die Möglichkeit haben, Paster zum Upgraden und Downgrade der Datenbank zu verwenden, oder zumindest eine Möglichkeit zu haben, den Benutzer (nach der Installation des Eggs) zum Upgrade/Downgrade zu veranlassen die Datenbank auf die benötigte Version.

Ich habe es jetzt in meine App integriert, sodass es beim App-Start das Versions-Upgrade durchführt, aber ich würde lieber etwas wählen, bei dem der Benutzer die Datenbank explizit aktualisieren muss, damit er genau weiß, was vor sich geht und Bescheid weiß um vorher Backups zu erstellen.

Wie würde ich da vorgehen?Wie füge ich Befehle zum Einfügen hinzu?

Die Art und Weise, wie Benutzer die Anwendung einrichten würden, ist:

paste make-config appname production.ini
paste setup-app production.ini#appname

Um es das erste Mal einzurichten, das Datenbank-Upgrade oder das Upgrade im Allgemeinen durchzuführen, würde ich Folgendes wünschen:

paste upgrade-app production.ini#appname

Oder so ähnlich.

War es hilfreich?

Lösung

Sie können Ihren eigenen Paster-Befehl erstellen, z. upgrade-app, und rufen Sie es dann von überall mit auf paster --plugin=appname upgrade-app /path/to/production.ini appname.Sie können nachlesen, wie Pyramid den PShellCommand implementiert.

Andere Tipps

Es ist nicht ganz das, wonach Sie suchen, aber auf eine Weise, mit der ich damit umgehen, ist mit Stoff Befehle.Meine OSS-App Ich habe einen Fabrikbefehl, den Sie ausführen, der eine .Ini-Datei für Ihre App erstellt, und dann, nachdem Sie die SQLALCHEMY.URL eingestuft haben, führen Sie einen Fabric-Befehl aus, der init SA-Migrationen aufweist und das Upgrade ausführt.Von da an, um ein Upgrade zu aktualisieren, führen Sie FAB DB_UPGRADE aus.

http://bmark.us/install.html

ist ein Beispiel für die Installation von docs, die ich eingerichtet habe.

https://github.com/mitechie/bookie/blob/Master / Fabfile / Datenbank.py

ist der Satz von dB-spezifischen Befehlen über die Stoffschnittstelle.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top