Associar Spring com PostgreSQL

18 respostas Resolvido
postgresql
T

Boa tarde!

Não estou conseguindo configurar a ligação entre o import SQL que tenho no Spring, com PostgreSLQ e criar a tabela no banco de dados associada com Spring.
Segue configuração realizada:

18 Respostas

L

Dá algum erro?

Evite postar imagens do código. Sempre que puder, poste o código diretamente, pq fica muito mais fácil de ajudar.

T

Bom dia!
A aplicação roda sem nenhum erro, mas não cria a tabela no postgresql.

L

Para que as tabelas sejam criadas de acordo com o modelo, no application.yml (ou properties) deve estar assim:

spring.jpa.hibernate.ddl-auto=create

e o seu está como none.

T

coloquei create mas não criou a tabela.

T

Também tem o import da tabela - import.sql
Com H2 rodou normalmente.

[application-devs.properties|

#spring.jpa.properties.javax.persistence.schema-generation.create-source=metadata
#spring.jpa.properties.javax.persistence.schema-generation.scripts.action=create
#spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target=create.sql
#spring.jpa.properties.hibernate.hbm2ddl.delimiter=;

spring.datasource.url=jdbc:postgresql://localhost:5432/dsmovie
spring.datasource.username=postgres
spring.datasource.password=1234567

spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
spring.jpa.hibernate.ddl-auto=none


[application-prod.properties|
spring.datasource.url=${DATABASE_URL}


[system.properties|

java.runtime.version=17

T

Conforme vc informou coloquei mas não rodou.
spring.jpa.hibernate.ddl-auto=create

T

pom.xml

org.postgresql
postgresql
runtime

L

Tava lendo a documentação e, na verdade, a propriedade deve ser configurada assim:

spring.jpa.generate-ddl=true // pelo que entendi, precisa dessa propriedade como true também
spring.jpa.hibernate.ddl-auto=update

FONTE: 59. Database initialization

T

coloquei essas propriedades mas não criou.
Olhei no projeto backend foi criado um arquivo create.sql.

T

Será que tem que importar esse arquivo no spring boot ?
Estou dando refresh no postgresql, ou tem que configurar alguma coisa ?

Tabelas para rodar no postgresql:

create table tb_movie (id  bigserial not null, count int4, image varchar(255), score float8, title varchar(255), primary key (id));

create table tb_score (value float8, movie_id int8 not null, user_id int8 not null, primary key (movie_id, user_id));

create table tb_user (id  bigserial not null, email varchar(255), primary key (id));

alter table tb_score add constraint FK23yhb6qop0f6hnb72hcorm3cv foreign key (movie_id) references tb_movie;

alter table tb_score add constraint FKl8lgmbrjoav0thqqtqx6vrr4k foreign key (user_id) references tb_user;

INSERT INTO tb_user(email) VALUES ([email removido]);

INSERT INTO tb_user(email) VALUES ([email removido]);

INSERT INTO tb_user(email) VALUES ([email removido]);

INSERT INTO tb_user(email) VALUES ([email removido]);

INSERT INTO tb_user(email) VALUES ([email removido]);

INSERT INTO tb_movie(score, count, title, image) VALUES (4.5, 2, The Witcher, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/jBJWaqoSCiARWtfV0GlqHrcdidd.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/jBJWaqoSCiARWtfV0GlqHrcdidd.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (3.3, 3, Venom: Tempo de Carnificina, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/vIgyYkXkg6NC2whRbYjBD7eb3Er.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/vIgyYkXkg6NC2whRbYjBD7eb3Er.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, O Espetacular Homem-Aranha 2: A Ameaça de Electro, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/u7SeO6Y42P7VCTWLhpnL96cyOqd.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/u7SeO6Y42P7VCTWLhpnL96cyOqd.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Matrix Resurrections, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/hv7o3VgfsairBoQFAawgaQ4cR1m.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/hv7o3VgfsairBoQFAawgaQ4cR1m.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Shang-Chi e a Lenda dos Dez Anéis, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/cinER0ESG0eJ49kXlExM0MEWGxW.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/cinER0ESG0eJ49kXlExM0MEWGxW.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Django Livre, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/2oZklIzUbvZXXzIFzv7Hi68d6xf.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/2oZklIzUbvZXXzIFzv7Hi68d6xf.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Titanic, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/yDI6D5ZQh67YU4r2ms8qcSbAviZ.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/yDI6D5ZQh67YU4r2ms8qcSbAviZ.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, O Lobo de Wall Street, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/cWUOv3H7YFwvKeaQhoAQTLLpo9Z.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/cWUOv3H7YFwvKeaQhoAQTLLpo9Z.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Aves de Rapina: Arlequina e sua Emancipação Fantabulosa, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/jiqD14fg7UTZOT6qgvzTmfRYpWI.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/jiqD14fg7UTZOT6qgvzTmfRYpWI.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Rogue One: Uma História Star Wars, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/6t8ES1d12OzWyCGxBeDYLHoaDrT.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/6t8ES1d12OzWyCGxBeDYLHoaDrT.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Star Wars: A Guerra dos Clones, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/uK15I3sGd8AudO9z6J6vi0HH1UU.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/uK15I3sGd8AudO9z6J6vi0HH1UU.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Star Wars: Episódio I - A Ameaça Fantasma, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/36LnijfQCOC89rCMOhn2OINXROI.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/36LnijfQCOC89rCMOhn2OINXROI.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Vingadores: Ultimato, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/7RyHsO4yDXtBv1zUU3mTpHeQ0d5.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/7RyHsO4yDXtBv1zUU3mTpHeQ0d5.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Thor, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/cDJ61O1STtbWNBwefuqVrRe3d7l.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/cDJ61O1STtbWNBwefuqVrRe3d7l.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Cisne Negro, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/hqh5O4KssfJWI62HGAgrjHXbxhD.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/hqh5O4KssfJWI62HGAgrjHXbxhD.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, O Silêncio dos Inocentes, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/mfwq2nMBzArzQ7Y9RKE8SKeeTkg.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/mfwq2nMBzArzQ7Y9RKE8SKeeTkg.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Clube da Luta, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/hZkgoQYus5vegHoetLkCJzb17zJ.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/hZkgoQYus5vegHoetLkCJzb17zJ.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Guerra Mundial Z, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/31VpBgUX5O4Z3dn5ZbX8HLqoXH3.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/31VpBgUX5O4Z3dn5ZbX8HLqoXH3.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Harry Potter e as Relíquias da Morte - Parte 1, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/vcrgU0KaNj5mKUCIQSUdiQwTE9y.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/vcrgU0KaNj5mKUCIQSUdiQwTE9y.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Harry Potter e a Pedra Filosofal, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/lvOLivVeX3DVVcwfVkxKf0R22D8.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/lvOLivVeX3DVVcwfVkxKf0R22D8.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Alice no País das Maravilhas, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/qNdlZgz9yoSJ8f0YxQWfKGPoVV.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/qNdlZgz9yoSJ8f0YxQWfKGPoVV.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Animais Fantásticos e Onde Habitam, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/8Qsr8pvDL3s1jNZQ4HK1d1Xlvnh.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/8Qsr8pvDL3s1jNZQ4HK1d1Xlvnh.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, A Teoria de Tudo, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/kq2MHrRfH6RTfkvyDEmYLmGHE6U.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/kq2MHrRfH6RTfkvyDEmYLmGHE6U.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, O Livro de Boba Fett, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/sjx6zjQI2dLGtEL0HGWsnq6UyLU.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/sjx6zjQI2dLGtEL0HGWsnq6UyLU.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, O Último Duelo, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/4LrL40XecjGLRpX5I2gzMTUt04l.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/4LrL40XecjGLRpX5I2gzMTUt04l.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Interestelar, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/rAiYTfKGqDCRIIqo664sY9XZIvQ.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/rAiYTfKGqDCRIIqo664sY9XZIvQ.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Contato, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/yFkUPqBuUnbhYbQL8VFpTrAT9za.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/yFkUPqBuUnbhYbQL8VFpTrAT9za.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Duna, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/jYEW5xZkZk2WTrdbMGAPFuBqbDc.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/jYEW5xZkZk2WTrdbMGAPFuBqbDc.jpg</a>’);

INSERT INTO tb_movie(score, count, title, image) VALUES (0, 0, Aquaman, <a href="https://www.themoviedb.org/t/p/w533_and_h300_bestv2/2cUsDz4TzFYHrKktT1bKHHQ7Cgm.jpg" rel="noopener nofollow ugc">https://www.themoviedb.org/t/p/w533_and_h300_bestv2/2cUsDz4TzFYHrKktT1bKHHQ7Cgm.jpg</a>’);

INSERT INTO tb_score(movie_id, user_id, value) VALUES (1, 1, 5.0);

INSERT INTO tb_score(movie_id, user_id, value) VALUES (1, 2, 4.0);

INSERT INTO tb_score(movie_id, user_id, value) VALUES (2, 1, 3.0);

INSERT INTO tb_score(movie_id, user_id, value) VALUES (2, 2, 3.0);

INSERT INTO tb_score(movie_id, user_id, value) VALUES (2, 3, 4.0);
L

Criar pelo JPA e pelo Spring são coisas diferentes.

As propriedades que passei são para criar pelo JPA, que nem vai tomar conhecimento desse arquivo SQL.

Já esse arquivo SQL é usado pelo Spring. No link que passei tem uma parte que explica mais sobre,veja: 59.3 Initialize a database using Spring JDBC

T

Entendi, mas com as propriedades do JPA não criou.
Tem que configurar alguma coisa no database, para subir a tabela?
Porque só estou fazendo refresh no postgre.

T

criei o database dsmovie, iqual está no arquivo de configuração.

L

Qdo fiz isso, apenas tinha o schema criado lah no postgresql msm.

T

só tem um banco que criei dsmovie
no schema na tabela fiz refresh

T
Solucao aceita

Lucas boa noite,
Então consegui, fiz o import da tabela manualmente no posgresql e coloquei no arquivo de configuração application.properties|attachment import desse cara, spring.profiles.active=devs.
Estava subindo o banco de dados errado.
Obrigado pelo apoio!!

E

Posta os logs do spring-boot para vermos se ele está carregando os beans necessários? Você incluiu as dependências necessárias? Essas configurações são estão de acordo com a versão do Spring que estás usando?

T

Eu consegui!! Configurei o properties com parâmetro correto, e inseri as tabelas no Postgresql.
Obrigado pelo apoio.

Criado 21 de março de 2022
Ultima resposta 30 de mar. de 2022
Respostas 18
Participantes 3