PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Spiel umwandeln! Framework-Evolution von MySQL zu PostgreSQL

Stellen Sie sicher, dass sich die Datenbank in einem konsistenten Zustand befindet.

Angenommen, Sie haben die Daten nicht aus der vorherigen MySQL-Datenbank migriert und arbeiten im Entwicklungsmodus (nicht im Produktionsmodus), sodass Sie sich keine Gedanken über die Erhaltung der Daten machen müssen:

  • Benennen Sie Ihre Migration wieder in 1.sql um . Nur weil Sie die Migration in einer früheren Datenbank durchgeführt haben, bedeutet das nicht, dass es eine zweite Evolution ist, wenn Sie sie in einer komplett neuen Datenbank ausführen werden:Für die neue Datenbank ist es immer noch die erste.
  • Deklarieren Sie Ihre Primärschlüsselspalten wie folgt:id bigserial primary key und entfernen Sie die constraint .
  • Stellen Sie sicher, dass Sie eine leere Datenbank in PostgreSQL haben. Löschen Sie die Datenbank und erstellen Sie sie neu (dropdb). , createdb ).
  • Führen Sie Ihre Datenbankmigration aus und beobachten Sie die Ausgabe, um sicherzustellen, dass die Migration ausgeführt wurde. Siehe Verwalten von Datenbankentwicklungen .
  • Verwenden Sie PgAdmin oder ein ähnliches Tool wie Toad Extension for Eclipse um zu überprüfen, ob die Datenbankstruktur korrekt erstellt wurde.

Alternativ können Sie herausfinden, dass Flyway bietet einen umfassenderen Ansatz für Datenbankmigrationen. Es gibt ein Plugin für Play Framework.

Um die Ausnahme Error getting sequence nextval zu vermeiden , kommentieren Sie die Entitätsklassendefinitionen ordnungsgemäß wie folgt:

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

Untersuchen Sie die Datenbank, um sicherzustellen, dass sequenceName ist der Name der von PostgreSQL erstellten Sequenz.

Weitere Informationen finden Sie unter: