2016-10-04 6 views
0

Ich habe eine Datenbank, in der ich Migrationen mit Hilfe von Flyway durchführe. Es hat eine schema_version Tabelle, die einen Datensatz hat:Ändern des Basisdatensatzes für den Flugweg

'1', '1', '1', '<< Flyway Baseline >>', 'BASELINE', '<< Flyway Baseline >>', NULL, 'root', '2016-06-28 16:59:05', '0', '1' 

Jetzt brauche ich einige frühere Migrationen als 1, ex vorstellen: 0.0.1. Diese Migrationen werden ignoriert, weil die Basislinie 1 ist. Kann ich den Basisliniensatz in der Tabelle schema_version ändern?

Hinweis: Ich benutze Java API.

Vielen Dank.

Antwort

1

Nr

Scheint wie eine verwirrende Anfrage obwohl - Sie in Migrationen hinzufügen möchten, die ausgeführt werden soll, sondern auch vor der Basislinie (was bedeutet, sollten sie nicht ausgeführt werden).

Was Sie tun müssen, ist Ihre schema_version löschen und baseline + migrate wieder mit Ihrem neuen baselineVersion ausführen.

Sie könnten den Basislinieneintrag in schema_version manuell optimieren, aber ich würde das nicht empfehlen.

+0

Die Baseline-Version in der Versionstabelle schema_version ist alt. Deshalb habe ich gefragt, ob ich diesen Datensatz in der schema_version-Tabelle ändern kann. Gibt es keine Möglichkeit, dies über die Java API zu tun, d. H. Ohne den Datensatz manuell zu aktualisieren oder die Tabelle zu löschen? Danke. –

+0

Korrigieren. Es gibt keine Möglichkeit, eine vorhandene 'schema_version'-Tabelle (über eine beliebige Flyway-API) neu zu" Baseline "zu machen. Sie müssen sich selbst einer manuellen Fehlerbehebung unterziehen, z. B. Ändern oder Löschen der 'schema_version'-Tabelle. – markdsievers

+0

Vielen Dank. –

0

kann ich einige Anwendungsfälle auf geben, wenn die Änderung der Basislinie benötigt wird:

  • ein Schema von einer älteren Dump erstellt wird (nicht flyway Informationen enthält), und wir wissen nicht genau, was die Basislinie sein sollte.
  • jemand hat (SQL) Migrationsschritte ohne Verwendung von Flyway angewendet, also müssen wir flyway darauf aufmerksam machen.
Verwandte Themen