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
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.
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
.
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.