8

Play! を使用する新しいプロジェクトを開始しようとしています。おそらく ORM として Squeryl を使用する Scala 用の 2 フレームワーク (しかし、間に合うように準備ができていれば、おそらく Slick も問題ないでしょう)。

さあ、プレイ!移行を使用してデータベースをアップグレードする機能があります。残念ながら、これらの移行は SQL で記述されています。これは不便であるだけでなく (Scala でマイグレーションを記述できるようにしたいのですが)、2 つの問題があります。

  • まず、自分で移行を作成する必要があります。私は、モデルの現在および以前の定義を見て、スキーマの移行を推測できるSouthに慣れています。
  • 次に、データの移行を処理するのが非常に面倒です。プログラムでデータを変更する必要があるかもしれませんが、これはプレーン SQL では実行できないかもしれません。

だから、私は代替手段を探しています。スキーマの移行を自動的に生成する Scala ORM 用の移行ツールを見つけることができませんでした。

私が見つけた最良のツールはScala migrationsです。Play! を作る方法はありますか? 独自の移行ツールの代わりに自動的に使用しますか?

4

3 に答える 3

6

別の代替手段はFlywayですが、統合の問題は解決しません。

そのために、標準の Play で行われるようにプラグインを実装することができます! Global オブジェクトを使用して、アプリケーションの開始時に移行を開始することもできます。

于 2012-08-17T13:51:17.703 に答える
5

Evolutions in Play2 はプラグインとして実装されています。その実装を調べて、同じ方針に沿って自分自身を転がすことができます。私が見る限り、実装を別のものに交換する簡単な方法はありません。

検討する価値のあるもう 1 つのツールはLiquibaseです。Java で実装されているため、Scala から簡単に使用できるはずです。

于 2012-08-17T10:11:49.870 に答える
5

リキベースをお勧めします。Liquibase は、データベースの変更を追跡、管理、および適用するためのオープン ソースでデータベースに依存しないライブラリです。それは単純な前提に基づいて構築されています。すべてのデータベースの変更は、人間が判読可能で追跡可能な形式で保存され、ソース管理にチェックインされます。Liquibase は Java と Scala の両方で使用できます。Liquibase の優れた点は、DB 移行のニーズに合わせて、XML、SQL、または両方の組み合わせを使用できることです。セットアップと使用が簡単で、非常に豊富なドキュメントがあります。

于 2012-08-17T13:45:57.550 に答える