sql >> Database >  >> RDS >> PostgreSQL

Spel omzetten! framework evolutie van MySQL naar PostgreSQL

Zorg ervoor dat de database consistent is.

Ervan uitgaande dat u de gegevens uit de vorige MySQL-database niet hebt gemigreerd en dat u in de ontwikkelingsmodus werkt (niet in de productiemodus), zodat u zich geen zorgen hoeft te maken over het bewaren van gegevens:

  • Hernoem uw migratie terug naar 1.sql . Alleen omdat je de migratie in een eerdere database hebt uitgevoerd, betekent dit niet dat wanneer je het in een geheel nieuwe database gaat uitvoeren, dit een tweede evolutie is:voor de nieuwe database is het nog steeds de eerste.
  • Declareer uw primaire sleutelkolommen als volgt:id bigserial primary key en verwijder de constraint .
  • Zorg dat je een lege database hebt in PostgreSQL. Zet de database neer en maak deze opnieuw (dropdb , createdb ).
  • Voer uw databasemigratie uit en bekijk de uitvoer om te controleren of de migratie is uitgevoerd. Zie Database-evoluties beheren .
  • Gebruik PgAdmin of een vergelijkbare tool zoals Toad Extension for Eclipse om te controleren of de databasestructuur correct is gemaakt.

U kunt er ook achter komen dat Flyway biedt een uitgebreidere benadering van databasemigraties. Er is een plug-in voor Play Framework.

Om de uitzondering te vermijden Error getting sequence nextval , annoteer de definities van entiteitsklassen als volgt:

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

Inspecteer de database om er zeker van te zijn dat sequenceName is de naam van de reeks gemaakt door PostgreSQL.

Voor meer informatie zie:




  1. postgres herkent de tijdelijke tabel niet in functie

  2. Hoe te bestellen op maandnaam in SQLite

  3. HikariCP:met welke time-outs op databaseniveau moet rekening worden gehouden om maxLifetime voor Oracle 11g in te stellen?

  4. JSON_ARRAYAGG() - Maak een JSON-array van de rijen van een query in MySQL