Associar Spring com PostgreSQL

18 respostas Resolvido
postgresql
tiagotsa

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

Lucas_Camara

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.

tiagotsa

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

Lucas_Camara

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.

tiagotsa

coloquei create mas não criou a tabela.

tiagotsa

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

tiagotsa

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

tiagotsa

pom.xml

org.postgresql
postgresql
runtime

Lucas_Camara

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

tiagotsa

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

tiagotsa

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);
Lucas_Camara

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

tiagotsa

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.

tiagotsa

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

Lucas_Camara

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

tiagotsa

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

tiagotsa
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!!

edpickler

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?

tiagotsa

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