🚀 Microserviço: Admin do Catálogo de Vídeos com Java

Microserviço referente ao backend da Administração do Catálogo de Vídeos


Ferramentas necessárias

  • JDK 17
  • IDE de sua preferência
  • Docker

Como executar?

  1. Clonar o repositório:
git clone https://github.com/Vicenteefenequis/spring-task-organizer-api.git
  1. Subir o banco de dados MySQL com Docker:
docker-compose up -d
  1. Executar as migrações do MySQL com o Flyway:
./gradlew flywayMigrate

Documentação dos endpoints

A documentação dos endpoints foi feita com o Swagger e pode ser acessada em:

http://localhost:8080/api/swagger-ui.html

Banco de dados

O banco de dados principal é um MySQL e para subir localmente vamos utilizar o Docker. Execute o comando a seguir para subir o MySQL:

docker-compose up -d

Pronto! Aguarde que em instantes o MySQL irá estar pronto para ser consumido na porta 3306.

Migrações do banco de dados com Flyway

Executar as migrações

Caso seja a primeira vez que esteja subindo o banco de dados, é necessário executar as migrações SQL com a ferramenta flyway. Execute o comando a seguir para executar as migrações:

./gradlew flywayMigrate

Pronto! Agora sim o banco de dados MySQL está pronto para ser utilizado.


Limpar as migrações do banco

É possível limpar (deletar todas as tabelas) seu banco de dados, basta executar o seguinte comando:

./gradlew flywayClean

MAS lembre-se: "Grandes poderes, vem grandes responsabilidades".


Reparando as migrações do banco

Existe duas maneiras de gerar uma inconsistência no Flyway deixando ele no estado de reparação:

  1. Algum arquivo SQL de migração com erro;
  2. Algum arquivo de migração já aplicado foi alterado (modificando o checksum).

Quando isso acontecer o flyway ficará em um estado de reparação com um registro na tabela flyway_schema_history com erro (sucesso = 0).

Para executar a reparação, corrija os arquivos e execute:

./gradlew flywayRepair

Com o comando acima o Flyway limpará os registros com erro da tabela flyway_schema_history, na sequência execute o comando FlywayMigrate para tentar migrar-los novamente.


Outros comandos úteis do Flyway

Além dos comandos já exibidos, temos alguns outros muito úteis como o info e o validate:

./gradlew flywayInfo
./gradlew flywayValidate

Para saber todos os comandos disponíveis: Flyway Gradle Plugin