webentwicklung-frage-antwort-db.com.de

Wie kann ich die Flyway in einem bestimmten Federprofil deaktivieren?

Jetzt habe ich Spring-Boot-App, die MS-SQL-Server verwendet. Und wir nutzen Flugwege für Migrationen.

Ich möchte ein zusätzliches Profil für Tests hinzufügen. Ich möchte Tabellen aus Entitätsklassen generieren. und nicht Flyway verwenden.

Ich habe versucht, so zu schreiben, in application.yaml

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

aber die flyway beginnt trotzdem

27
gstackoverflow

Diese Antwort funktioniert mit der Spring Boot 1.X-Version. Wenn Sie nach einer Antwort für Spring Boot 2.X suchen, sollten Sie unter die Antwort sehen.

Für Spring-Boot steht eine Eigenschaft zur Verfügung, mit der Flyway deaktiviert werden kann, falls dies flyway.enabled erforderlich ist (standardmäßig true).

Sie können eine profilspezifische Konfiguration haben, in Ihrem Fall sollte sie application-test.yml heißen. Diese Konfiguration kann Flyway deaktivieren, wenn das Profil aktiv ist. Sie müssen es nur wie folgt deklarieren:

flyway:
  enabled: false

Wenn Sie das Testprofil in der allgemeinen Konfiguration angeben, fügen Sie es einfach zu seinem Stamm hinzu.

37
Stanislav

Zu Ihrer Information, für alle, die hierher kommen und danach suchen, der Name der Eigenschaft hat sich für Spring Boot 2.0 geändert :

Für application.properties-Format:

spring.flyway.enabled=false

Für application.yml-Format:

spring:
    flyway:
        enabled: false

Update: Um flyway in einem bestimmten Profil zu deaktivieren, können Sie diese Eigenschaft in die für dieses Profil spezifische Eigenschaftendatei einfügen. Wenn Ihr Profil beispielsweise "abc" heißt, können Sie es in application-abc.properties setzen. In Spring-Dokumentation zu profilspezifischen Eigenschaften finden Sie weitere Informationen zum Benennen der Dateien. Im Allgemeinen ist das Format application-{profileName}.properties

50
Todd

JIC die offizielle Dokumentation mit dem aktuellen Spring Boot 2.x: Allgemeine Anwendungseigenschaften und schau dir das Tag # FLYWAY an. Dort findest du viele Eigenschaften, die dir helfen können.

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