web-dev-qa-db-fra.com

Comment désactiver la voie de migration dans certains profils de printemps?

Maintenant, j'ai une application Spring-Boot qui utilise le serveur MS SQL. Et nous utilisons les migrations par voie de migration.

Je veux ajouter un profil supplémentaire pour les tests. Je veux générer des tables à partir de classes d'entités. et n'utilisez pas la voie de migration.

J'ai essayé d'écrire comme ça dans application.yaml

spring:
  profiles: test
  jpa:
      generate-ddl: true
      hibernate:
  datasource:
    url: jdbc:h2:mem:test_db;MODE=MSSQLServer
    username: sa
    password:

mais la voie de migration commence quand même

27
gstackoverflow

Cette réponse fonctionne avec la version Spring Boot 1.X. Si vous cherchez une réponse pour Spring Boot 2.X, vous devriez voir le sous la réponse .

Spring-Boot dispose d'une propriété permettant de désactiver flyway si elle a besoin de flyway.enabled, qui est true par défaut.

Vous pouvez avoir une configuration spécifique à votre profil. Dans votre cas, elle devrait être nommée application-test.yml. Cette configuration peut désactiver la voie de migration si le profil est actif. Vous devez juste le déclarer comme suit:

flyway:
  enabled: false

Et si vous spécifiez un profil de test dans une configuration commune, ajoutez-le simplement à sa racine.

37
Stanislav

Pour votre information, si vous venez ici chercher ceci, le nom de la propriété a changé pour Spring Boot 2.0 :

Pour le format application.properties:

spring.flyway.enabled=false

Pour le format application.yml:

spring:
    flyway:
        enabled: false

Update: Pour désactiver le mode de migration dans un profil spécifique, vous pouvez placer cette propriété dans le fichier de propriétés spécifique à ce profil. Par exemple, si votre profil s'appelle "abc", vous pouvez le mettre dans application-abc.properties. Consultez la documentation de Spring sur les propriétés spécifiques au profil pour plus de clarté sur la façon de nommer les fichiers. Généralement, le format est application-{profileName}.properties

50
Todd

JIC la documentation officielle avec la version actuelle du printemps 2.x: Propriétés communes de l’application et consultez la balise # FLYWAY. Vous y trouverez de nombreuses propriétés pouvant vous aider.

spring.flyway.enabled=false # Whether to enable flyway.
0
Jonathan Johx