Wie deaktiviere ich Flyway in einem bestimmten Spring-Profil?

Lesezeit: 3 Minuten

Benutzeravatar von gstackoverflow
gstackoverflow

Jetzt habe ich eine Spring-Boot-App, die MsSQL-Server verwendet. Und wir nutzen Flyway für Migrationen.

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

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

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

aber Flyway beginnt trotzdem

Benutzeravatar von Todd
Todd

Zu Ihrer Information, für alle, die hierher kommen und danach suchen, Der Eigenschaftsname 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

Aktualisieren: 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 eingeben application-abc.properties. Kasse Springs Dokumentation zu profilspezifischen Eigenschaften für mehr Klarheit bei der Benennung der Dateien. Im Allgemeinen ist das Format application-{profileName}.properties.

  • das geht nicht unter frühling. Flyway: aktiviert: falsch

    – Tushar J. Dudhatra

    2. Mai 2018 um 12:14 Uhr


  • Tut mir leid, ich kann deinem Kommentar nicht folgen.

    – Todd

    2. Mai 2018 um 12:15 Uhr

  • @gstackoverflow Siehe Update, ich habe einige Kommentare und einen Link zum Anwenden von Eigenschaften auf bestimmte Profile hinzugefügt.

    – Todd

    9. November 2018 um 13:41 Uhr

  • Ich bin froh, dass es @gstackoverflow geholfen hat

    – Todd

    9. November 2018 um 17:21 Uhr

  • alternativ gilt folgendes vollkommen in application.yml: spring.flyway.enabled: false. Wenn es nicht funktioniert, versuchen Sie, “false” in Anführungszeichen zu setzen …

    – masterxilo

    23. Juli 2019 um 10:23 Uhr

Benutzeravatar von Stanislav
Stanislaw

Gilt nicht für Spring Boot 2.X! Die richtige Antwort ist hier.

Lesen Sie weiter, wenn Sie eine Antwort für Spring Boot 1.X benötigen.

Es ist eine Eigenschaft für Spring-Boot verfügbar, um Flyway bei Bedarf zu deaktivieren flyway.enabled was standardmäßig wahr ist.

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

flyway:
  enabled: false

Und wenn Sie ein Testprofil in der gemeinsamen Konfiguration angeben, fügen Sie es einfach zu seinem Stamm hinzu.

  • Wenn Sie den Flyway nur brauchen, um nicht zu schwören, dass einige Migrationen nicht angewendet werden, können Sie spring.flyway.out-of-order = true verwenden

    – roma2341

    8. Juli 2021 um 11:28 Uhr

Benutzeravatar von Jonathan JOhx
Jonathan JOhx

JIC die offizielle Dokumentation mit aktuellem Spring Boot 2.x :
Datenmigrationseigenschaften und schau dir das Etikett an # WEG FLIEGEN Sie werden viele Eigenschaften finden, die Ihnen helfen können.

spring.flyway.enabled=false # Whether to enable flyway.

Ich habe mehrere Profile zB

  1. Anwendungsintegration.yml
  2. Anwendung.yml

in application.yml

spring:
  profiles:
    active: ${ENVIRONMENT_NAME:local}
  flyway:
    enabled: true
    user: ${ORACLE_DB_USER:#{null}}
    password: ${ORACLE_DB_PASS:#{null}}
    locations: classpath:db/migration
    url: ${DB_URL:#{null}}
    driver-class-name: oracle.jdbc.OracleDriver
    #    skipExecutingMigrations: true
    tablespace: MY_TABLESPACE_NAME
    baselineOnMigrate: true
    schemas: MY_SCHEMA_NAME

in application-integration.yml

spring:
  flyway:
    enabled: false

Wenn ich es ausführe, wird die Flyway-Migration nicht deaktiviert. Ich verwende SpringBoot2.3.4

Hier Beispiel von application.yaml Es definiert 2 Profile:
1. enable_flyway_profile – ermöglicht Flyway
2. disable_flyway_profile – deaktiviert Flyway

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

---

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

  • nicht wirklich. docs.spring.io/spring-boot/docs/current/reference/html/… was du suchst ist spring.profiles: "enable_flyway_profile" Die active Eigenschaft soll definieren, welches Profil aktiv ist

    – TecHunter

    18. Februar 2019 um 15:31 Uhr

  • @TecHunter Es mag Sie überraschen, aber dieser Code funktioniert erfolgreich in der Produktion

    – gstackoverflow

    18. März 2019 um 9:52 Uhr

  • ach ok, gut zu wissen! Ich bevorzuge auch die Art, wie du es geschrieben hast 🙂 expliziter

    – TecHunter

    18. März 2019 um 18:45 Uhr

  • nicht wirklich. docs.spring.io/spring-boot/docs/current/reference/html/… was du suchst ist spring.profiles: "enable_flyway_profile" Die active Eigenschaft soll definieren, welches Profil aktiv ist

    – TecHunter

    18. Februar 2019 um 15:31 Uhr

  • @TecHunter Es mag Sie überraschen, aber dieser Code funktioniert erfolgreich in der Produktion

    – gstackoverflow

    18. März 2019 um 9:52 Uhr

  • ach ok, gut zu wissen! Ich bevorzuge auch die Art, wie du es geschrieben hast 🙂 expliziter

    – TecHunter

    18. März 2019 um 18:45 Uhr

1444890cookie-checkWie deaktiviere ich Flyway in einem bestimmten Spring-Profil?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy