2017-11-14 3 views
1

Ich möchte nicht ausführen data.sql Datei jedes Mal, wenn ich will data.sql Datei ausgeführt werden, einmal und danach, wenn ich meine Anwendungsdatei ausführen muss es diese Datei übergeben. weil, wann immer ich die Anwendung ausführe, führt sie die data.sql Datei aus, und für das doppelte Einträge sind in der Tabelle.Nur einmal data.sql Datei muss ausgeführt werden

+0

Die Antwort hängt stark von Ihrer Anwendungslogik ab. Sie müssen eine Logik hinzufügen, die erkennt, ob data.sql bereits ausgeführt wurde. Definieren Sie also einfach die "By-Pass-Kriterien", überprüfen Sie zuerst, und führen Sie data.sql nur bei Bedarf aus. Bitte beachten Sie, dass dies zu einem konstanten Overhead für Ihre App führt. Es könnte sich lohnen, an den entgegengesetzten Weg zu denken. Obwohl ein Fehler beim Start der App ohne data.sql * EVER * ausgeführt wurde, starte es und starte deine App. – MBushveld

+0

können wir etwas in der Datei application.properties tun, damit es die Datei datas.sql überprüft – Aurovindo

+0

Es gibt keine Config zum Deaktivieren in 'application.yml'. Was Sie tun können, fügen Sie richtige Einschränkungen in DB-Seite hinzu und aktivieren Sie diese 'spring.datasource.continue-on-error' – Jobin

Antwort

0

Warum verwenden Sie nicht ein Datenbankmigrationstool wie Flyway oder Liquidbase? Dann weiß jedes Mal beim Starten der App, ob die Änderungen bereits angewendet wurden.

ZB: data.sql wird in etwas wie initial_data_V100 umbenannt.

Dann wird diese unter einem Schema-Tabelle gespeichert werden (generiert und verwendet von Flyway/Liquidbase) wie: Id, SCHEMA_VERSION, script_name, Prüfsumme 1, V100, initial_data_V100,234234

Jedes Mal, wenn Sie die App starten Es wird sehen, ob Sie diese Schemaänderungen bereits angewendet haben.

Das nächste Mal, wenn Sie weitere Änderungen hinzufügen möchten, müssen Sie nur eine neue Datei erstellen und die Version erhöhen, zB: V101.sql. Flyway oder Liquidbase wird es übernehmen und die Schemaänderungen anwenden

Verwandte Themen