Pyramid / SqlalChemy Web Appsのアップグレード
-
09-09-2020 - |
質問
データベースの持続性のためにSQLAlchemyを使用するMill Pylons Pyramidアプリケーションの標準的な実行を手に入れました。
SQLalChimy-Migrate Repoを設定していて機能しておりますが、PASTERを使用してデータベースをアップグレードしてダウングレードしたり、少なくともユーザーを持つ方法(卵をインストールした後)を実際に使用したいと考えています。データベースを必要なバージョンにアップグレード/ダウングレードします。
私は今それが私のアプリを内蔵していますので、アプリの起動時にバージョンアップが実行されますが、ユーザーがデータベースを明示的にアップグレードしているように、ユーザーがデータベースをアップグレードする必要があるものと一致します。そして、事前にバックアップを作成することを知っています。
それについてどうやって行きますか?貼り付けのコマンドを追加するにはどうすればいいですか?
ユーザーがアプリケーションを設定する方法は次のとおりです。
paste make-config appname production.ini
paste setup-app production.ini#appname
.
初めて設定するには、データベースのアップグレードまたは一般的なアップグレードを行うには:
paste upgrade-app production.ini#appname
.
またはそれらの線に沿ったもの。
解決
あなた自身のPasterコマンドを作成することができます。upgrade-app
を使用すると、paster --plugin=appname upgrade-app /path/to/production.ini appname
を使用してどこからでも呼び出します。PyramidがPshellCommandをどのように実装するかを参照できます。
他のヒント
あなたが探しているのは全く扱われていませんが、私がこれを扱う片道はファブリックコマンド。私のOSSアプリあなたが実行しているファブリックコマンドを持っているあなたのアプリのための.iniファイルを作成してから、sqlalchemy.urlを調整した後、initのSA移行を実行してアップグレードを実行するFabricコマンドを実行します。その後、FAB DB_Upgradeを実行するためにアップグレードします。
https://github.com/mitechie/bookie/blob/マスター/ファブファイル/ Database.py
は、ファブリックインタフェースを介して利用可能なDB固有のコマンドの集合です。