[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:
Robert von Burg 2015-01-09 12:34:05 +01:00
parent ee741b5e18
commit 6e265c755b
4 changed files with 10 additions and 9 deletions

@ -1 +1 @@
Subproject commit 3f6f9950f856dd995ca1d3581aabe30ba3db910e
Subproject commit 07b574dba13ae7ca1000737dc799f6fd3885bd35

View File

@ -30,6 +30,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ch.eitchnet.db.DbSchemaVersionCheck;
import ch.eitchnet.utils.Version;
import ch.eitchnet.utils.helper.StringHelper;
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 {
String dbVersion = DbSchemaVersionCheck.getExpectedDbVersion(PostgreSqlPersistenceHandler.SCRIPT_PREFIX,
Version dbVersion = DbSchemaVersionCheck.getExpectedDbVersion(PostgreSqlPersistenceHandler.SCRIPT_PREFIX,
PostgreSqlPersistenceHandler.class);
logger.info(MessageFormat.format("Dropping schema for expected version {0}", dbVersion));
String sql = DbSchemaVersionCheck.getSql(PostgreSqlPersistenceHandler.SCRIPT_PREFIX,

View File

@ -23,7 +23,6 @@ import static li.strolch.persistence.postgresql.dao.test.CachedDaoTest.dropSchem
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.MessageFormat;
import li.strolch.persistence.postgresql.PostgreSqlPersistenceHandler;
@ -34,6 +33,7 @@ import org.junit.Test;
import ch.eitchnet.db.DbException;
import ch.eitchnet.db.DbSchemaVersionCheck;
import ch.eitchnet.utils.Version;
/**
* @author Robert von Burg <eitch@eitchnet.ch>
@ -56,17 +56,16 @@ public class DbMigrationTest {
DbSchemaVersionCheck dbCheck = new DbSchemaVersionCheck(scriptPrefix, ctxClass, allowSchemaCreation,
allowSchemaMigration, allowSchemaDrop);
try (Connection con = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD);
Statement st = con.createStatement();) {
try (Connection con = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD)) {
// 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
dbCheck.createSchema(StrolchConstants.DEFAULT_REALM, "0.2.0", st);
dbCheck.createSchema(con, StrolchConstants.DEFAULT_REALM, Version.valueOf("0.2.0"));
// 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) {
String msg = "Failed to open DB connection to URL {0} due to: {1}"; //$NON-NLS-1$

View File

@ -38,6 +38,7 @@ import org.junit.Before;
import ch.eitchnet.db.DbSchemaVersionCheck;
import ch.eitchnet.privilege.model.Certificate;
import ch.eitchnet.utils.Version;
/**
* @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 {
String dbVersion = DbSchemaVersionCheck.getExpectedDbVersion(PostgreSqlPersistenceHandler.SCRIPT_PREFIX,
Version dbVersion = DbSchemaVersionCheck.getExpectedDbVersion(PostgreSqlPersistenceHandler.SCRIPT_PREFIX,
PostgreSqlPersistenceHandler.class);
String sql = DbSchemaVersionCheck.getSql(PostgreSqlPersistenceHandler.SCRIPT_PREFIX,
PostgreSqlPersistenceHandler.class, dbVersion, "drop"); //$NON-NLS-1$