Sørg for, at databasen er i en ensartet tilstand.
Forudsat at du ikke har migreret dataene fra den tidligere MySQL-database, og at du arbejder i udviklingstilstand (ikke i produktionstilstand), så du ikke behøver at bekymre dig om at bevare data:
- Omdøb din migrering tilbage til
1.sql
. Bare fordi du udførte migreringen i en tidligere database, betyder det ikke, at når du skal udføre den i en helt ny database, er det en anden udvikling:for den nye database er det stadig den første. - Deklarer dine primærnøglekolonner således:
id bigserial primary key
og fjernconstraint
. - Sørg for, at du har en tom database i PostgreSQL. Slip databasen og genskab den (
dropdb
,createdb
). - Kør din databasemigrering og se outputtet for at sikre dig, at migreringen blev udført. Se Håndtering af databaseudviklinger .
- Brug PgAdmin eller et lignende værktøj såsom Toad Extension for Eclipse for at bekræfte, at databasestrukturen er oprettet korrekt.
Alternativt kan du finde ud af, at Flyway giver en mere omfattende tilgang til databasemigreringer. Der er et plugin til Play Framework.
For at undgå undtagelsen Error getting sequence nextval
, anmærk korrekt enhedsklassedefinitionerne sådan her:
@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; }
Undersøg databasen for at sikre, at sequenceName
er navnet på sekvensen skabt af PostgreSQL.
For mere information se:
- Ebean looks for forkert sekvensnavn i Play Framework 2
- Konfigurer JPA at lade PostgreSQL generere den primære nøgleværdi
- EJB3 JPA:3 Ways Of Generation Primary Key Through @GeneratedValue
- PersistenceException:Fejl ved hentning af sekvens nextval
- Play Framework:Fejl ved hentning af sekvens nextval ved brug af H2-hukommelsesdatabase
- Annotationstype GeneratedValue