7
respostas

Spring Boot 3:desenvova uma API Rest em java

na aula Exclusão lógica, eu interrompi uma ativação pois a sintaxe da ordem sql estava errada "alter table medicos add ativo tinyint; update medicos set aativo = 1;" com um 'a' a + na coluna ativo, depois da correção rodei de novo a aplicação,e parece que o flyway ficou corrompido, então da mensagem de failed migration, e no chat gpt diz que tenho que dar o comando flyway repair mas não consigo nem no terminal nem no cmd.

7 respostas

Para resolver esse problema, você pode tentar executar o comando "flyway repair" no terminal ou no CMD. No entanto, se você não está conseguindo executar esse comando, pode ser necessário verificar se o Flyway está devidamente configurado no seu projeto.

Certifique-se de que você adicionou corretamente as dependências do Flyway no seu arquivo de configuração do Spring Boot, como o arquivo pom.xml, se você estiver usando o Maven. Além disso, verifique se você possui as configurações corretas para o Flyway, como a URL do banco de dados e as credenciais de acesso.

Outra opção é verificar se você possui as permissões necessárias para executar o comando "flyway repair" no terminal ou no CMD. Certifique-se de que você está executando o terminal ou o CMD como administrador ou com as permissões corretas.

Se mesmo assim você não conseguir resolver o problema, compartilha mais detalhes sobre o erro que você está recebendo ao tentar executar o comando "flyway repair".

no cmd como admin:

'flyway' não é reconhecido como um comando interno ou externo, um programa operável ou um arquivo em lotes.

no terminal do intellij

flyway : O termo 'flyway' não é reconhecido como nome de cmdlet, função, arquivo de script ou programa operável. Verifique a grafia do nome ou, se um caminho tiver sido incluído, veja se o caminho está correto e tente novamente.No linha:1 caractere:1

  • flyway repair
  •   + CategoryInfo          : ObjectNotFound: (flyway:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
    

Oi

Para solucionar esse problema, siga os passos a seguir:

Passo 1: Verifique se o Flyway está configurado no seu projeto

Certifique-se de que você adicionou as dependências do Flyway corretamente no arquivo de configuração do seu projeto Spring Boot, como o arquivo pom.xml, se você estiver usando o Maven. No seu arquivo pom.xml, você deve ter algo semelhante a isso:

<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-core</artifactId>
</dependency>

Além disso, verifique se você possui as configurações corretas para o Flyway em seu arquivo application.properties ou application.yml. Por exemplo:

spring.datasource.url=jdbc:mysql://localhost:3306/seubanco
spring.datasource.username=seuusuario
spring.datasource.password=suasenha
spring.flyway.locations=classpath:db/migration

Certifique-se de substituir as informações acima pelas configurações do seu banco de dados.

Passo 2: Verifique se o Flyway está instalado localmente

O Flyway é uma ferramenta de linha de comando que pode ser instalada localmente em seu sistema. Para fazer isso, siga as etapas abaixo:

  • Abra um terminal ou CMD como administrador.
  • Use o seguinte comando para instalar o Flyway localmente:
npm install -g flyway-command-line

Isso instalará o Flyway globalmente em seu sistema.

Passo 3: Verifique o seu PATH

Certifique-se de que o diretório onde o Flyway está instalado globalmente está incluído em sua variável de ambiente PATH. Isso permitirá que o sistema encontre o comando Flyway sempre que você executá-lo no terminal.

Para verificar o PATH, siga estas etapas:

  • No Windows:

    1. Pesquise por "Variáveis de Ambiente" no menu Iniciar.
    2. Clique em "Editar variáveis de ambiente do sistema."
    3. Na seção "Variáveis do sistema", encontre a variável "Path" e clique em "Editar..."
    4. Verifique se o caminho para o diretório do Flyway está listado. Se não estiver, adicione-o.
  • No Linux/macOS:

    1. Abra um terminal.
    2. Digite o seguinte comando para verificar o PATH:
echo $PATH
  • Certifique-se de que o caminho para o diretório do Flyway está incluído na saída.

Passo 4: Teste o comando "flyway" no terminal

Após seguir os passos acima, abra um novo terminal ou CMD e tente executar o comando "flyway" para verificar se o Flyway agora é reconhecido. Se tudo estiver configurado corretamente, você verá a ajuda do Flyway no terminal.

Passo 5: Execute "flyway repair"

Agora que o Flyway está reconhecido, tente executar o comando "flyway repair" para corrigir a migração corrompida. Certifique-se de estar no diretório do seu projeto Spring Boot quando executar este comando. O comando deve ser executado no diretório raiz do projeto, onde seu arquivo pom.xml está localizado.

flyway repair

Isso deve corrigir quaisquer problemas com a migração corrompida.

Passo 6: Reinicie sua aplicação

Após a correção, reinicie sua aplicação Spring Boot para garantir que o Flyway aplique as migrações corretamente. Isso pode ser feito a partir da linha de comando usando o seguinte comando:

mvn spring-boot:run

Ou, se você estiver usando o Gradle:

./gradlew bootRun

Isso deve resolver o problema da migração corrompida e permitir que você continue com seu projeto.

C:\WINDOWS\system32>npm install -g flyway-command-line npm notice npm notice New major version of npm available! 9.8.1 -> 10.2.1 npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.2.1 npm notice Run npm install -g npm@10.2.1 to update! npm notice npm ERR! code E404 npm ERR! 404 Not Found - GET https://registry.npmjs.org/flyway-command-line - Not found npm ERR! 404 npm ERR! 404 'flyway-command-line@*' is not in this registry. npm ERR! 404 npm ERR! 404 Note that you can also install from a npm ERR! 404 tarball, folder, http url, or git url.

npm ERR! A complete log of this run can be found in: C:\Users\mdemo\AppData\Local\npm-cache_logs\2023-10-23T19_00_43_228Z-debug-0.log

C:\WINDOWS\system32>flyway 'flyway' não é reconhecido como um comando interno ou externo, um programa operável ou um arquivo em lotes.

já instalei o node.js

Na real estou com dificuldade de achar o flyway nas minhas pastas, ou diretórios para incluir nas variáveis de ambiente.

Eu achei o flyway_Desktop nos meus documetos. Então jogei o caminho no path de variavais de sistema, eu acho que é apenas um arquivo de execução, não tem pasta nem bin, desculpa pelas perguntas óbvias, mas um realmente estou com dificuldade em aprender o Spring. no terminal do intellij aparece o seguinte:

PS C:\Intellij\api> flyway repair flyway : O termo 'flyway' não é reconhecido como nome de cmdlet, função, arquivo de script ou programa operável. Verifique a grafia do nome ou, se um caminho tiver sido incluído, veja se o caminho está correto e tente novamente.No linha:1 caractere:1

  • flyway repair
  •   + CategoryInfo          : ObjectNotFound: (flyway:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
    

PS C:\Intellij\api>