1

私は playframework 2.0 を使用しており、私のアプリケーションはリリースの準備ができています。私が開発していると、モデルレイヤーを追加/変更するたびに conf\evolutions\default\1.sql が自動的に変更されていることに気付きました。アプリケーションをリリースしようとしているときに、これを 1 ではなく 2.sql に追加するように設定するにはどうすればよいか疑問に思っていました。将来リリースをアップグレードする必要がある場合に、システムが 1.sql がインストールされていることを認識し、2.sql を実行するだけで済むように、リビジョンにタグ付け/分岐したいと考えています。

私は現在 JDBC データベースを使用していますが、開発中に変更を加えると 1.sql が更新され、次にアプリケーションを実行したときにすべてのデータが消去されることに気付きました。

では、進化1が終了するようにするにはどうすればよいですか?

現在、構成オプションがあります: applyEvolutions.default=true

これはリリースするのは悪い考えですか?

助けてくれてありがとう

4

1 に答える 1

2

間違いなく悪い考えです

Ebean は ALTER を作成しませんが、DDL の CREATE バージョンを作成します。そのため、モデルを変更してプロダクションに送信する場合、すべてのテーブルを削除して再作成します。もちろん、すべてのデータが失われます。

1.sqlしたがって、Ebean によるファイルの変更を無効にするには、最初の 2 行を削除する必要があります。

これからは2.sql、次のようなファイルを手動で作成する必要があります。これらの新しいファイルでは、変更ステートメントのみを追加する必要があります。

于 2012-08-03T07:48:51.847 に答える