Pastikan database dalam keadaan konsisten.
Dengan asumsi Anda belum memigrasikan data dari database MySQL sebelumnya dan Anda bekerja dalam mode pengembangan (bukan dalam mode produksi), jadi Anda tidak perlu khawatir tentang mempertahankan data:
- Ganti nama migrasi Anda kembali ke
1.sql
. Hanya karena Anda menjalankan migrasi di database sebelumnya, bukan berarti saat Anda akan menjalankannya di database yang sama sekali baru, ini adalah evolusi kedua:untuk database baru, ini masih yang pertama. - Deklarasikan kolom kunci utama Anda seperti ini:
id bigserial primary key
dan hapusconstraint
. - Pastikan Anda memiliki database kosong di PostgreSQL. Jatuhkan database dan buat ulang (
dropdb
,createdb
). - Jalankan migrasi database Anda dan lihat hasilnya untuk memastikan migrasi dijalankan. Lihat Mengelola evolusi basis data .
- Gunakan PgAdmin atau alat serupa seperti Ekstensi Katak untuk Eclipse untuk memverifikasi bahwa struktur database telah dibuat dengan benar.
Atau, Anda mungkin mengetahui bahwa Jalur Terbang menyediakan pendekatan yang lebih komprehensif untuk migrasi database. Ada plugin untuk Kerangka Kerja Play.
Untuk menghindari pengecualian Error getting sequence nextval
, beri anotasi dengan benar pada definisi kelas entitas seperti ini:
@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; }
Periksa database untuk memastikan bahwa sequenceName
adalah nama urutan yang dibuat oleh PostgreSQL.
Untuk informasi lebih lanjut lihat:
- Tampilan Ebean untuk nama urutan yang salah di Play Framework 2
- Konfigurasikan JPA untuk membiarkan PostgreSQL menghasilkan nilai kunci utama
- EJB3 JPA:3 Cara Menghasilkan Kunci Utama Melalui @GeneratedValue
- PersistenceException:Error mendapatkan urutan nextval
- Play Framework:Kesalahan mendapatkan urutan berikutnya menggunakan basis data dalam memori H2
- Jenis Anotasi Nilai yang Dihasilkan