16

モデルを変更するたびに、Play Framework は、スキーマ全体を削除して再作成するスクリプトを実行するように要求するようです。明らかに、これは本番環境では機能しません。本番環境でこれを処理する適切な方法は何ですか?

注意してください、私は ebean と Postgres を使用しており、heroku でホストしています。

4

2 に答える 2

31

残念ながら、(彼らのグループで回答されているように)Ebeanしか作成できCREATE DDL ません(作成できません)。したがって、できるだけ早く手動の進化に切り替える必要があります。UPDATE DDL

いくつかのルール:

  1. 変更を実装する前に、常にライブDBをバックアップしてください:)
  2. 1.sqlebean プラグインは、それによって作成された進化のみがある場合、DDL 全体を再作成します
  3. から最初の 2 つのコメントを削除し、次の番号などで独自の進化を書き始める必要があります。1.sql手動の進化に切り替える前に、できるだけ多くのモデル/フィールドを配置してみてください。大部分はプラグインによって自動的に行われます。2.sql3.sql
  4. 手動の進化にはALTERS、DROP/CREATE の代わりに既存のテーブル/列が含まれている必要があります。変更ごとにUps、および両方が必要です。Downs
  5. 各進化にできるだけ多くの変更を加えるようにしてください。小さな変更ごとに別々の進化を書くよりも管理が簡単です。

事実上、DB gui を使用して DB 構造を変更する方が簡単な場合もありますが、主に単一の開発者向けに機能します...コードを他の開発者と共有する必要がある場合は、進化を書く方が良いオプションです。

しばらくして新しいモデルの次の「大きな」部分を追加する場合は、一時的な自動 DDL を再度有効にして、新しい部分をコピーするためだけにローカル git を使用できます。次に、独自の革命に戻り、Ebean プラグインによって生成された新しいパーツを貼り付けます。

于 2013-01-31T00:31:38.953 に答える