※ 商品のリンクをクリックして何かを購入すると私に少額の報酬が入ることがあります【広告表示】 perezvonさんも言っている けど、Railsのスキーママイグレーションツールは結構羨ましかったりする。
ただ、RailsのmigrationはRubyっぽく?書くものなので、大幅なスキーマの変更には耐えられないという話も聞いたことがある。
Djangoも スキーマエボリューションブランチ という「スキーマ変更時にデータベースを変更する仕組みを実装する試み」が行われているけれど、今のところまだ完成には遠いとのこと。
そんなときに、 DbMigration ってのが登場(1週間以上たってるけど)。
今のところ勝手アプリなんだけど、django.contribに入れてmanage.pyで実行できることを もくろんでいる みたい。
なにが気に入ったかって、 基本はSQLによるALTER で、データの移行や調整は Djangoのモデルを使ったPythonスクリプト を定義するってとこ。
SQLを考慮してないフローに無理矢理SQLを入れてぐちゃぐちゃになるってパターンに陥らないもんね。
実際問題としてはSQL抜きじゃ無理 なんだよ。ってか、マイグレーションくらいSQL書けばいいじゃん。ObjectBrowswer ER使ったって大抵うまくいかないんだから(Viewの生成順序とかでこけるから手で編集してるよ。なぜか制約を2度つけようとしたりもするね)。
それから、どこまで実行したかをデータベースに保存するっぽいところも気に入った。どこまでやったのかを忘れるんだな、結構。
開発環境・テスト環境・本番環境にブランチとか受け入れテスト中とかが混ざってくると。
なので、これはぜひ試してみようと思う。うむ。