1
resposta

[Dúvida] Duvida em como criar as tabelas do banco usando o docker

Pessoal to com uma duvida aqui já tentei pesquisar e nd. Estou criando um projeto com spring boot e mysql criei o dockerfile e o docker compose ele cria o banco mas não cria as tabelas oq pode ser. E outra duvida como acessar esse banco pela a ide sem ser pela linha de comando?

FROM openjdk:17

WORKDIR /app

COPY target/flixhub-0.0.1-SNAPSHOT.jar /app/flixhub.jar

ENTRYPOINT ["java", "-jar", "flixhub.jar"]

version: '3'
services:
  mysql:
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: root_password
      MYSQL_DATABASE: flixhub_db
      MYSQL_USER: flixhub_user
      MYSQL_PASSWORD: flixhub_password
    ports:
      - 3307:3306
    volumes:
      - mysql_data:/var/lib/mysql
    networks:
      - flixhub_network

  flixhub-app:
    build: .
    depends_on:
      - mysql
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/flixhub_db
      SPRING_DATASOURCE_USERNAME: flixhub_user
      SPRING_DATASOURCE_PASSWORD: flixhub_password
    networks:
      - flixhub_network

networks:
  flixhub_network:
    driver: bridge

volumes:
  mysql_data:

spring.datasource.url=jdbc:mysql://mysql:3306/flixhub_db
spring.datasource.username=flixhub_user
spring.datasource.password=flixhub_password

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Bruno!

Sobre a criação das tabelas no banco de dados, a propriedade spring.jpa.hibernate.ddl-auto=update no arquivo de configurações do Spring Boot deveria atualizar o esquema do banco de dados com base nas entidades definidas no seu projeto. Se as tabelas não estão sendo criadas, verifique se as entidades estão corretamente anotadas com @Entity e se estão no pacote escaneado pelo Spring Boot (geralmente o pacote onde está a classe principal com @SpringBootApplication).

Outro ponto importante é garantir que a aplicação está iniciando sem erros e que o contexto do Spring está sendo carregado corretamente. Qualquer erro durante a inicialização pode impedir que as tabelas sejam criadas.

Para acessar o banco de dados usando uma IDE, como o IntelliJ IDEA ou o Eclipse, você pode configurar uma conexão de banco de dados usando as informações de conexão que você definiu no Docker Compose e nos arquivos de configuração do Spring Boot. No caso do seu Docker Compose, você mapeou a porta 3306 do container MySQL para a porta 3307 do host, então você deve usar a porta 3307 para se conectar ao banco de dados a partir da sua máquina local.

Aqui estão os passos para configurar a conexão no IntelliJ IDEA, por exemplo:

  1. Abra o IntelliJ IDEA e vá para a aba "Database" no lado direito da tela.
  2. Clique no botão "+" e selecione "Data Source > MySQL".
  3. Preencha as informações de conexão:
    • Host: localhost
    • Port: 3307
    • User: flixhub_user
    • Password: flixhub_password
    • Database: flixhub_db
  4. Clique em "Test Connection" para verificar se tudo está correto.
  5. Se a conexão for bem-sucedida, você poderá ver as tabelas e executar consultas SQL diretamente pela IDE.

Lembre-se de que, para acessar o banco de dados a partir da sua IDE, o container do MySQL deve estar em execução.

  • Qualquer dúvida manda aqui de novo.

Espero ter ajudado e bons estudos!