79 votes

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

189voto

Todd Points 4949

Pour info, pour quelqu'un qui vient ici à la recherche pour cela, le nom de la propriété a changé pour le Printemps Boot 2.0:

Pour application.properties format:

spring.flyway.enabled=false

Pour application.yml format:

spring:
    flyway:
        enabled: false

Mise à jour: Pour désactiver la voie de migration dans un profil spécifique, vous pouvez mettre la propriété dans le fichier de propriétés spécifiques à ce profil. Par exemple, si votre profil est appelé "abc", vous pouvez le mettre dans application-abc.properties. Découvrez Printemps de la documentation sur le Profil de propriétés spécifiques pour plus de clarté sur la façon de nommer les fichiers. Généralement, le format est - application-{profileName}.properties.

74voto

Stanislav Points 16471

Cette réponse travaille avec Spring Boot 1.X version. Si vous êtes à la recherche pour répondre à pour le Printemps de Démarrage 2.X, vous devriez voir la réponse ci-dessous.

Il y a une propriété disponible pour la saison printemps-démarrage pour désactiver la voie de migration si c'est nécessaire, flyway.enabled , ce qui est vrai par défaut.

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

flyway:
  enabled: false

Et si vous spécifiez profil de test en commun de configuration, il suffit de l'ajouter à la racine.

6voto

Jonathan Johx Points 1294

JIC la documentation officielle avec les versions actuelles de Spring Boot 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.
 

-1voto

gstackoverflow Points 1993

Voici un exemple de application.yaml Il définit 2 profils:
1. enable_flyway_profile - active la voie de migration
2. disable_flyway_profile - désactive la voie de migration

 spring:
  profiles:
    active: "enable_flyway_profile"
  flyway:
    enable: true
  ....

---

spring:
  profiles:
    active: "disable_flyway_profile"
  flyway:
    enable: false
  ....
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X