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 aconstraint
. - 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:
- Aparência Ebean para nome de sequência errado no Play Framework 2
- Configurar JPA para permitir que o PostgreSQL gere o valor da chave primária
- EJB3 JPA:3 maneiras de gerar chave primária por meio de @GeneratedValue
- PersistenceException:erro ao obter a sequência nextval
- Play Framework:Erro ao obter a sequência nextval usando o banco de dados na memória H2
- Tipo de anotação GeneratedValue