1

私は演劇を書いています!フレームワークのバックエンド。私は設定を始めましたjpa.ddl=update。しかし、皆様にアドバイスを頂き、製作準備の際にこれを に変更しましたjpa.ddl=none

それ以来、データベースの進化を使用してデータベーススキーマを自分で追跡する必要があることを理解しています。これまでのところ問題なく実行できましたが、モデルに変更を加えているため、手動で作成していない特定のテーブルが存在すると想定して、JPA が SQL クエリを実行していることに気付きました。

単純にコードを実行して、次のようなエラーを受け取るのが正しいとは思えません。

ERROR: relation "games_users" does not exist

次に、そのテーブルを作成する進化スクリプトを記述します。JPA / Playが現在のスキーマが私のモデルに基づいているべきだと考えているものを確認して作成できるようにする方法はありますか、それともこれを行うためのより良い方法はありますか?

4

1 に答える 1

1

解決策は、開発中に使用jpa.ddl=updateし、JPA モデルを変更し続けることです。モデルを JPA に更新させることは、本番環境では推奨されませんが、開発環境では使用できます。ソフトウェアが安定し、JPA エンティティを変更する必要がなくなったら、自動生成されたスキーマから固定スキーマに切り替えることができます。

sql別の解決策は、別のデータベース名で開発し、スクリプトを生成する 2 つのデータベース間の差分を作成することです。

より退屈な解決策は、SQL進化スクリプトを手動で保持し、JPA エンティティを変更するたびにスクリプトを作成することです。

于 2013-07-03T07:15:25.173 に答える