web-dev-qa-db-fra.com

La voie aérienne ne trouve pas de classe de classe: DB / Migrations

Je viens de commencer maintenant un nouveau projet dans Intellij à l'aide de Spring Boot Ver 2.1.3 et de Flagway 5.2.4 avec Java 11.

Après avoir essayé de commencer mon projet, j'ai eu:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flyway' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.flywaydb.core.Flyway]: Factory method 'flyway' threw exception; nested exception is Java.lang.IllegalStateException: Cannot find migrations location in: [classpath:db/migration] (please add migrations or check your Flyway configuration)

J'ai les dossiers suivants:

enter image description here

Comme vous pouvez le constater, j'ai "DB/migration" mais sans aucune migration, je viens de commencer maintenant. Déboguer la classe Flywayautoconfiguration J'ai eu les suivantes:

enter image description here

Ainsi, j'ai essayé de retourner tous les fichiers dans "ClassPath:", voir:

enter image description here

Notez que j'ai juste un fichier "Application.Properties".

6
Ronaldo Lanhellas

J'ai eu une erreur similaire et l'a résolu comme suit: J'ai ajouté ces commandes

spring.flyway.baselineOnMigrate=true
spring.flyway.check-location=true
spring.flyway.locations=classpath:db/migration
spring.flyway.schemas=public
spring.flyway.enabled=true

à l'application.properties

1
Thairam Michel

Ce n'est pas une réponse très utile ou précise.

Mais ce problème vous rend frustré pour que je donne cette solution.

Remarque : Etrange mais c'est vrai, il n'est pas autorisé, car votre dossier a créé db.migration et il expulse db-> la migration (ce n'est pas la même dans ce scénario). Donc, chaque fois que vous commencez à partir de zéro. Allez dans le dossier de ressources -> Créer un dossier DB -> Créer un dossier de migration -> Créez un fichier de base de données avec version_subversion__name (tel que défini ci-dessous).

Normalement, cela se produit dans les cas suivants,

  1. Le chemin n'est pas approprié d'essayer d'utiliser SET LOCALES PARAM VALEUR.
  2. db.migrate dossier ne contient aucun fichier.
  3. Vérifier le nom du fichier: v1_1 __ (short_desc)
  4. Essayez de courir en utilisant, MVN Compiler Flagway: migrer

Dans mon cas, je place déjà le fichier SQL là-bas, mais cela donne toujours la même erreur, je place ce fichier SQL à l'aide de la pâte de copie de quelque part.

Lorsque j'essaie d'ajouter un nouveau fichier sur le même endroit en utilisant IDE (Intellij: clic droit sur le dossier de migration -> Nouveau -> Migration de voie de migration -> Migration vers la version versée), alors il me demande (Avertissement) À propos d'une allocation délicate (normalement, nous mentionnons dans la configuration de la base de données que je placez aussi là encore), et cela commence à fonctionner.

0
Dhwanil Patel

Même lorsque vous avez vos fichiers de migration dans le dossier DB/Migration, Flagway ne le détectera pas.

Ensuite, vous devrez résoudre ce problème en définissant explicitement les emplacements de votre application.properties (ou Applocation.yml) en ajoutant:

spring.flyway.locations=classpath:db/migration
0
Rabhi salim