[Major] refactored DbSchemaVersionCheck and added version parsing
- Now we can use Version to see if current version is greater than - Fixed bug where version checking didn't check for app - TODO is still open to handle migration with intermediary steps
This commit is contained in:
parent
ee741b5e18
commit
6e265c755b
|
@ -1 +1 @@
|
||||||
Subproject commit 3f6f9950f856dd995ca1d3581aabe30ba3db910e
|
Subproject commit 07b574dba13ae7ca1000737dc799f6fd3885bd35
|
|
@ -30,6 +30,7 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import ch.eitchnet.db.DbSchemaVersionCheck;
|
import ch.eitchnet.db.DbSchemaVersionCheck;
|
||||||
|
import ch.eitchnet.utils.Version;
|
||||||
import ch.eitchnet.utils.helper.StringHelper;
|
import ch.eitchnet.utils.helper.StringHelper;
|
||||||
|
|
||||||
public class CachedDaoTest extends AbstractModelTest {
|
public class CachedDaoTest extends AbstractModelTest {
|
||||||
|
@ -65,7 +66,7 @@ public class CachedDaoTest extends AbstractModelTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void dropSchema(String dbUrl, String dbUsername, String dbPassword) throws Exception {
|
public static void dropSchema(String dbUrl, String dbUsername, String dbPassword) throws Exception {
|
||||||
String dbVersion = DbSchemaVersionCheck.getExpectedDbVersion(PostgreSqlPersistenceHandler.SCRIPT_PREFIX,
|
Version dbVersion = DbSchemaVersionCheck.getExpectedDbVersion(PostgreSqlPersistenceHandler.SCRIPT_PREFIX,
|
||||||
PostgreSqlPersistenceHandler.class);
|
PostgreSqlPersistenceHandler.class);
|
||||||
logger.info(MessageFormat.format("Dropping schema for expected version {0}", dbVersion));
|
logger.info(MessageFormat.format("Dropping schema for expected version {0}", dbVersion));
|
||||||
String sql = DbSchemaVersionCheck.getSql(PostgreSqlPersistenceHandler.SCRIPT_PREFIX,
|
String sql = DbSchemaVersionCheck.getSql(PostgreSqlPersistenceHandler.SCRIPT_PREFIX,
|
||||||
|
|
|
@ -23,7 +23,6 @@ import static li.strolch.persistence.postgresql.dao.test.CachedDaoTest.dropSchem
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DriverManager;
|
import java.sql.DriverManager;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.sql.Statement;
|
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
|
|
||||||
import li.strolch.persistence.postgresql.PostgreSqlPersistenceHandler;
|
import li.strolch.persistence.postgresql.PostgreSqlPersistenceHandler;
|
||||||
|
@ -34,6 +33,7 @@ import org.junit.Test;
|
||||||
|
|
||||||
import ch.eitchnet.db.DbException;
|
import ch.eitchnet.db.DbException;
|
||||||
import ch.eitchnet.db.DbSchemaVersionCheck;
|
import ch.eitchnet.db.DbSchemaVersionCheck;
|
||||||
|
import ch.eitchnet.utils.Version;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
|
@ -56,17 +56,16 @@ public class DbMigrationTest {
|
||||||
DbSchemaVersionCheck dbCheck = new DbSchemaVersionCheck(scriptPrefix, ctxClass, allowSchemaCreation,
|
DbSchemaVersionCheck dbCheck = new DbSchemaVersionCheck(scriptPrefix, ctxClass, allowSchemaCreation,
|
||||||
allowSchemaMigration, allowSchemaDrop);
|
allowSchemaMigration, allowSchemaDrop);
|
||||||
|
|
||||||
try (Connection con = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD);
|
try (Connection con = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD)) {
|
||||||
Statement st = con.createStatement();) {
|
|
||||||
|
|
||||||
// DROP 0.2.1
|
// DROP 0.2.1
|
||||||
dbCheck.dropSchema(StrolchConstants.DEFAULT_REALM, "0.2.1", st);
|
dbCheck.dropSchema(con, StrolchConstants.DEFAULT_REALM, Version.valueOf("0.2.1"));
|
||||||
|
|
||||||
// CREATE 0.2.0
|
// CREATE 0.2.0
|
||||||
dbCheck.createSchema(StrolchConstants.DEFAULT_REALM, "0.2.0", st);
|
dbCheck.createSchema(con, StrolchConstants.DEFAULT_REALM, Version.valueOf("0.2.0"));
|
||||||
|
|
||||||
// MIGRATE 0.2.1
|
// MIGRATE 0.2.1
|
||||||
dbCheck.migrateSchema(StrolchConstants.DEFAULT_REALM, "0.2.1", st);
|
dbCheck.migrateSchema(con, StrolchConstants.DEFAULT_REALM, Version.valueOf("0.2.1"));
|
||||||
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
String msg = "Failed to open DB connection to URL {0} due to: {1}"; //$NON-NLS-1$
|
String msg = "Failed to open DB connection to URL {0} due to: {1}"; //$NON-NLS-1$
|
||||||
|
|
|
@ -38,6 +38,7 @@ import org.junit.Before;
|
||||||
|
|
||||||
import ch.eitchnet.db.DbSchemaVersionCheck;
|
import ch.eitchnet.db.DbSchemaVersionCheck;
|
||||||
import ch.eitchnet.privilege.model.Certificate;
|
import ch.eitchnet.privilege.model.Certificate;
|
||||||
|
import ch.eitchnet.utils.Version;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
|
@ -77,7 +78,7 @@ public abstract class AbstractRealmServiceTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void dropSchema(String dbUrl, String dbUsername, String dbPassword) throws Exception {
|
public static void dropSchema(String dbUrl, String dbUsername, String dbPassword) throws Exception {
|
||||||
String dbVersion = DbSchemaVersionCheck.getExpectedDbVersion(PostgreSqlPersistenceHandler.SCRIPT_PREFIX,
|
Version dbVersion = DbSchemaVersionCheck.getExpectedDbVersion(PostgreSqlPersistenceHandler.SCRIPT_PREFIX,
|
||||||
PostgreSqlPersistenceHandler.class);
|
PostgreSqlPersistenceHandler.class);
|
||||||
String sql = DbSchemaVersionCheck.getSql(PostgreSqlPersistenceHandler.SCRIPT_PREFIX,
|
String sql = DbSchemaVersionCheck.getSql(PostgreSqlPersistenceHandler.SCRIPT_PREFIX,
|
||||||
PostgreSqlPersistenceHandler.class, dbVersion, "drop"); //$NON-NLS-1$
|
PostgreSqlPersistenceHandler.class, dbVersion, "drop"); //$NON-NLS-1$
|
||||||
|
|
Loading…
Reference in New Issue