Utilizzo lo strumento della riga di comando flyway per gestire le mie migrazioni di db. Fino ad ora tutte le migrazioni sono sqlCome creare migrazioni flyway basate su flyway
file di configurazione (solo le opzioni utilizzate):
flyway.url=jdbc:postgresql://db.host
flyway.user=user
flyway.password=password
flyway.table=flyway_migrations
flyway.locations=filesystem:/home/........./sql/migrations
flyway.sqlMigrationPrefix=update
flyway.validateOnMigrate=false
flyway.outOfOrder=true
che funziona perfettamente.
Ma per ora ho bisogno di aggiungere una migrazione basata su Java. E sono davvero perplesso Non riesco a trovare alcun esempio di How todo. Come compilare, dove inserire le migrazioni java.
Ho provato semplice la migrazione di classe da documentazione ufficiale:
package db.migration;
import org.flywaydb.core.api.migration.jdbc.JdbcMigration;
import java.sql.Connection;
import java.sql.PreparedStatement;
/**
* Example of a Java-based migration.
*/
public class V50_121_1__update_notes implements JdbcMigration {
public void migrate(Connection connection) throws Exception {
PreparedStatement statement =
connection.prepareStatement("INSERT INTO test_user (name) VALUES ('Obelix')");
try {
statement.execute();
} finally {
statement.close();
}
}
}
Ma cosa fare dopo? compilazione provato:
javac -cp "./flyway-core-3.2.1.jar" V50_121_1__update_notes.java
jar cf V50_121_1__update_dataNode_notes.jar V50_121_1__update_dataNode_notes.class
E poi mettere quel vaso in posizioni diverse, non hanno alcun effetto.
info flyway - non vedere la migrazione.
Quindi, come creare la migrazione più semplice basata su java. Preferirò non usare Maven, o qualcosa di simile. Semplice file jar (???) che viene raccolto dallo strumento da riga di comando flyway.
Grazie.
Grazie. Aggiungendo db.migration alle posizioni, questo è quello che mi mancava –
@Vadym Kovalenko sto affrontando anche un problema simile, sareste in grado di aiutarmi per favore. Ho aggiunto il db/migrazione in flyway.locations e il file jar è collocato all'interno delle cartelle jar Ma sto ancora affrontando lo stesso errore "Impossibile eseguire la scansione per migrazioni SQL in posizione: classpath: db/migration", per favore fatemi sapere se bisogno di altri dettagli –
@AdarshHDDev Fa sql e/o file di classe all'interno del file jar situato all'interno di classpath - db/migration? –