4

Gentoo で "vanilla" Pyramid 1.4 を使用しています。テーブルに変更を加えて、テーブル (およびそのすべてのデータ) を削除せずにコミットしてから再作成したいと考えています。これに対する解決策はスキーマの移行だと聞きました。

長年の Django ユーザーである私は を使用してきましたがdjango-south、現在は Pyramid を使用しており、移行を処理する方法が見つかりません。について読んだことがsqlalchemy-migrateありますが、これは非常に良さそうですが、Pyramid で動作させる方法がわかりません。

Pyramid 1.4 でスキーマの移行を処理する方法はありますか? そして、使用することsqlalchemy-migrateが賢明なオプションである場合、どうすれば Pyramid で動作させることができますか?

乾杯。

4

2 に答える 2

12

それはあなたの質問に直接答えることはありませんが、代わりに、Mike Bayer 自身 (SQLAlchemy の作成者) による新しい SQLAlchemy 移行ツールであるAlembicを検討しましたか? sqlalchemy-migrate の開発は 1 月に停止したようですが、Alembic は非常に活発です。

于 2012-10-13T02:35:14.197 に答える
6

Martin が言うように、移行には Alembic を使用することをお勧めします。これは SqlAlchemy の作成者によるものであり、SqlAlchemy の変更とうまく同期する必要があります。

それをフレームワークに配線することに関しては、それはあなた次第です。Alembic の env.py を更新して Pyramid .ini ファイルをロードすることにより、Bookie でセットアップしました。ここでコードの変更を確認できます。

https://github.com/mitechie/Bookie/blob/develop/dbversions/env.py#L8

これにより、モデルもロードされるため、変更の自動生成を使用できます。

次に、生成、更新などを可能にする Makefile のヘルパーを介して移行を制御します。

https://github.com/mitechie/Bookie/blob/develop/Makefile#L67

これらはおそらくピラミッド p* コマンドに変換される可能性がありますが、私はそうしていません。 http://pyramid.readthedocs.org/en/latest/narr/commandline.html#writing-a-script

于 2012-10-13T20:14:43.367 に答える