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

Conversione Play! evoluzione del framework da MySQL a PostgreSQL

Assicurati che il database sia in uno stato coerente.

Supponendo che tu non abbia migrato i dati dal precedente database MySQL e che tu stia lavorando in modalità sviluppo (non in modalità produzione), quindi non devi preoccuparti di preservare i dati:

  • Rinomina la tua migrazione in 1.sql . Solo perché hai eseguito la migrazione in un database precedente, non significa che quando la eseguirai in un database completamente nuovo si tratta di una seconda evoluzione:per il nuovo database, è ancora il primo.
  • Dichiara le colonne della tua chiave primaria in questo modo:id bigserial primary key e rimuovi il constraint .
  • Assicurati di avere un database vuoto in PostgreSQL. Elimina il database e ricrealo (dropdb , createdb ).
  • Esegui la migrazione del database e osserva l'output per assicurarti che la migrazione sia stata eseguita. Vedi Gestione delle evoluzioni del database .
  • Utilizza PgAdmin o uno strumento simile come Toad Extension for Eclipse per verificare che la struttura del database sia stata creata correttamente.

In alternativa, potresti scoprire che Flyway fornisce un approccio più completo alle migrazioni di database. Esiste un plugin per Play Framework.

Per evitare l'eccezione Error getting sequence nextval , annota correttamente le definizioni delle classi di entità in questo modo:

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

Ispeziona il database per assicurarti che sequenceName è il nome della sequenza creata da PostgreSQL.

Per ulteriori informazioni vedere: