sql >> Databasteknik >  >> RDS >> PostgreSQL

Konvertera Play! ramutveckling från MySQL till PostgreSQL

Se till att databasen är i ett konsekvent tillstånd.

Förutsatt att du inte har migrerat data från den tidigare MySQL-databasen och att du arbetar i utvecklingsläge (inte i produktionsläge), så behöver du inte oroa dig för att bevara data:

  • Byt namn på din migrering tillbaka till 1.sql . Bara för att du körde migreringen i en tidigare databas betyder det inte att när du ska köra den i en helt ny databas är det en andra utveckling:för den nya databasen är det fortfarande den första.
  • Deklarera dina primärnyckelkolumner så här:id bigserial primary key och ta bort constraint .
  • Se till att du har en tom databas i PostgreSQL. Släpp databasen och återskapa den (dropdb , createdb ).
  • Kör din databasmigrering och titta på utdata för att se till att migreringen genomfördes. Se Hantera databasutvecklingar .
  • Använd PgAdmin eller ett liknande verktyg som Toad Extension for Eclipse för att verifiera att databasstrukturen skapades korrekt.

Alternativt kan du ta reda på att Flyway ger en mer omfattande metod för databasmigrering. Det finns ett plugin för Play Framework.

För att undvika undantaget Error getting sequence nextval , annotera entitetsklassdefinitionerna korrekt så här:

@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; }

Inspektera databasen för att se till att sequenceName är namnet på sekvensen skapad av PostgreSQL.

För mer information se:




  1. SELECT EXISTS kontra LIMIT 1

  2. Exportera tabell från Postgres databas (på server) till csv-fil (på lokal) i java

  3. Varför är IS NOT NULL falsk när man kontrollerar en radtyp?

  4. exekverar `EXECUTE IMMEDIATE ` Oracle Statement Får fel