1

Play 1.0 で変数の型を変更したり、たとえばモデルで @OneToMany から @ManyToMany に変更したりすると、Play は自動的に変更を処理していましたが、play 2.0 の進化スクリプトではデータベースがドロップされます。DB をドロップせずに Play 2.0 に変更を適用させる方法はありますか?

4

1 に答える 1

2

はい、方法はあります。ファイルの自動再作成を無効にし、代わりに を含む独自の進化を書き始める必要があります-1.sqlなどで番号を付けます。ALTERSCREATES2.sql3.sql

実際には、単一のデータベースで作業している場合、お気に入りの DB GUI を使用してデータベースのテーブルと列を管理することもできます。進化は、GUI を使用できない場合 (ホストが外部接続を許可せず、GUI がない場合)、または別のデータベースでアプリの多くのインスタンスを実行する予定がある場合にのみ役立ちます。そうしないと、ステートメントを手動で書くことは、おそらく GUI を使用するよりも複雑になります。

ヒント: 必要なすべてのリレーションと制約を手動の進化に追加したかどうかわからない場合は、それらを削除し (git で制御されたフォルダーの下で!)、Ebean プラグインを有効にしてアプリを実行し、提案された保存を行います1.sqlが、そうではありません。変更を適用します。後で git を使用して進化を元に戻し、保存された自動生成ファイルとconvertCREATE ステートメントを ALTER と比較します。サードパーティ ソフトウェアを使用せずに変更を管理するには、これ以上の選択肢はありません。

于 2012-11-01T21:20:37.917 に答える