データベースが一貫した状態にあることを確認してください。
以前のMySQLデータベースからデータを移行しておらず、開発モード(本番モードではない)で作業していると仮定すると、データの保存について心配する必要はありません。
- 移行の名前を
1.sql
に戻します。 。以前のデータベースで移行を実行したからといって、完全に新しいデータベースで移行を実行する場合、それが2番目の進化であるという意味ではありません。新しいデータベースの場合、それはまだ最初のデータベースです。 - 主キー列を次のように宣言します:
id bigserial primary key
constraint
を削除します 。 - PostgreSQLに空のデータベースがあることを確認してください。データベースを削除して再作成します(
dropdb
、createdb
。 - データベース移行を実行し、出力を監視して、移行が実行されたことを確認します。 データベースの進化の管理 を参照してください。 。
- PgAdminまたは
Toad ExtensionforEclipseなどの同様のツールを使用する> データベース構造が正しく作成されたことを確認します。
または、Flyway であることがわかる場合もあります。 データベース移行へのより包括的なアプローチを提供します。 プラグイン があります PlayFramework用。
例外を回避するにはError getting sequence nextval
、次のようにエンティティクラス定義に適切に注釈を付けます。
@Id
@SequenceGenerator(name="product_gen", sequenceName="product_id_seq", allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="product_gen")
@Column(name="id")
public Long getId() { return id; }
データベースを調べて、sequenceName
PostgreSQLによって作成されたシーケンスの名前です。
詳細については、以下を参照してください。
- Ebeanの外観PlayFramework2のシーケンス名が間違っている場合
- JPAを構成しますPostgreSQLに主キー値を生成させる
- EJB3 JPA:@GeneratedValueを介して主キーを生成する3つの方法
- PersistenceException:シーケンスnextvalの取得中にエラーが発生しました
- Play Framework:H2インメモリデータベースを使用したシーケンスnextvalの取得中にエラーが発生しました
- アノテーションタイプGeneratedValue