Estou trabalhando com tabelas particionadas usando Postgres e Spring Boot, consegui fazer a partição e nos testes que eu fiz o método GET e POST está funcionando do jeito que eu queria, porém gostaria de ajuda para resolver o seguinte erro, que é retornado quando eu inicio a aplicação:
GenerationTarget encountered exception accepting command : Error executing DDL "create table teste (data date not null, id int4 not null, nome varchar(255), primary key (data, id))" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "create table teste (data date not null, id int4 not null, nome varchar(255), primary key (data, id))" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
O passo a passo do que eu fiz antes do erro aparecer:
Criei o Model principal, que fará referência a tabela particionada:
@Getter@Setter@NoArgsConstructor@AllArgsConstructor@EqualsAndHashCodepublicclassTesteId implements Serializable{privatestatic final long serialVersionUID =1L;privateint id;privateLocalDate data;}
E então iniciei a aplicação, tudo rodou normalmente.
CREATE TABLE IF NOT EXISTS public.teste
(
data date NOT NULL,
id integer NOT NULL,
nome character varying(255) COLLATE pg_catalog."default",
CONSTRAINT teste_pkey PRIMARY KEY (data, id)) PARTITION BY RANGE (data);
Então eu iniciei a aplicação novamente e o seguinte erro foi impresso no log do Spring Boot:
WARN 16668---[ main] o.h.t.s.i.ExceptionHandlerLoggedImpl:GenerationTarget
encountered exception accepting command :Error executing DDL "create table teste (data
date not null, id int4 not null, nome varchar(255), primary key (data, id))" via JDBC
Statement org.hibernate.tool.schema.spi.CommandAcceptanceException:Error executing DDL
"create table teste (data date not null, id int4 not null, nome varchar(255), primary
key (data, id))" via JDBC Statement at
org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67)~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at
org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigra
tor.java:562)~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at
org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigr
ator.java:507)~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
Eu sei que alterar o 'spring.jpa.hibernate.ddl-auto' para 'none' resolveria o problema, porém não é a solução que eu desejo, já que não quero gerenciar manualmente todas as alterações no banco de dados.
Pergunta
yago_r
Estou trabalhando com tabelas particionadas usando Postgres e Spring Boot, consegui fazer a partição e nos testes que eu fiz o método GET e POST está funcionando do jeito que eu queria, porém gostaria de ajuda para resolver o seguinte erro, que é retornado quando eu inicio a aplicação:
GenerationTarget encountered exception accepting command : Error executing DDL "create table teste (data date not null, id int4 not null, nome varchar(255), primary key (data, id))" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "create table teste (data date not null, id int4 not null, nome varchar(255), primary key (data, id))" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
O passo a passo do que eu fiz antes do erro aparecer:
Criei o Model principal, que fará referência a tabela particionada:
Criei a classe do id composto:
E então iniciei a aplicação, tudo rodou normalmente.
Após isso pausei a aplicação e particionei a tabela 'teste' seguindo a documentação do Postgres: https://www.postgresql.org/docs/current/ddl-partitioning.html Tópico: 5.11.2.1. Example
E minha tabela ficou da seguinte forma:
Então eu iniciei a aplicação novamente e o seguinte erro foi impresso no log do Spring Boot:
Meu application.properties está assim:
Eu sei que alterar o 'spring.jpa.hibernate.ddl-auto' para 'none' resolveria o problema, porém não é a solução que eu desejo, já que não quero gerenciar manualmente todas as alterações no banco de dados.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.