sql >> Database teknologi >  >> RDS >> PostgreSQL

Konvertering af Play! framework evolution fra MySQL til PostgreSQL

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 fjern constraint .
  • 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:




  1. gemmer MySQL-indstillinger

  2. Indsæt NULL i stedet for tom streng med PDO

  3. Find sidste række i gruppe efter query-SQL Server

  4. Forsøger at forstå over() og partitionere efter