PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Convertendo o jogo! evolução do framework do MySQL para o PostgreSQL


Certifique-se de que o banco de dados esteja em um estado consistente.

Supondo que você não tenha migrado os dados do banco de dados MySQL anterior e que esteja trabalhando no modo de desenvolvimento (não no modo de produção), não precisa se preocupar em preservar os dados:
  • Renomeie sua migração de volta para 1.sql . Só porque você executou a migração em um banco de dados anterior, não significa que quando você vai executá-la em um banco de dados completamente novo é uma segunda evolução:para o novo banco de dados, ainda é o primeiro.
  • Declare suas colunas de chave primária assim:id bigserial primary key e remova a constraint .
  • Certifique-se de ter um banco de dados vazio no PostgreSQL. Solte o banco de dados e recrie-o (dropdb , createdb ).
  • Execute a migração do banco de dados e observe a saída para garantir que a migração foi executada. Consulte Gerenciando evoluções do banco de dados .
  • Use o PgAdmin ou uma ferramenta semelhante, como Toad Extension for Eclipse para verificar se a estrutura do banco de dados foi criada corretamente.

Como alternativa, você pode descobrir que Flyway fornece uma abordagem mais abrangente para migrações de banco de dados. Existe um plugin para o Play Framework.

Para evitar a exceção Error getting sequence nextval , anote corretamente as definições de classe de entidade assim:
@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; }

Inspecione o banco de dados para certificar-se de que sequenceName é o nome da sequência criada pelo PostgreSQL.

Para mais informações, veja: