Skip to content
Snippets Groups Projects
Commit 26b6740d authored by Adam Laskowski's avatar Adam Laskowski
Browse files

BIS-1009: Added flag to force creation of initial database

parent 59010060
No related branches found
No related tags found
1 merge request!40SSDM-13578 : 2PT : Database and V3 Implementation - include the new AFS "free"...
......@@ -64,7 +64,7 @@ public final class DBMigrationEngine
new SqlScriptProvider(context.getSqlScriptFolders(), databaseEngineCode);
final DBMigrationEngine migrationEngine =
new DBMigrationEngine(migrationDAOFactory, sqlScriptProvider, context
.isCreateFromScratch());
.isCreateFromScratch(), context.isForceCreateWithInitialData());
migrationEngine.migrateTo(databaseVersion);
if (Integer.parseInt(databaseVersion) >= 180)
{
......@@ -82,6 +82,8 @@ public final class DBMigrationEngine
private final boolean shouldCreateFromScratch;
private final boolean forceCreateWithInitialData;
private final ISqlScriptProvider scriptProvider;
private final IDatabaseAdminDAO adminDAO;
......@@ -101,6 +103,12 @@ public final class DBMigrationEngine
*/
public DBMigrationEngine(final IDAOFactory daoFactory, final ISqlScriptProvider scriptProvider,
final boolean shouldCreateFromScratch)
{
this(daoFactory, scriptProvider, shouldCreateFromScratch, false);
}
public DBMigrationEngine(final IDAOFactory daoFactory, final ISqlScriptProvider scriptProvider,
final boolean shouldCreateFromScratch, final boolean forceCreateWithInitialData)
{
adminDAO = daoFactory.getDatabaseDAO();
logDAO = daoFactory.getDatabaseVersionLogDAO();
......@@ -109,6 +117,7 @@ public final class DBMigrationEngine
migrationStepExecutorAdmin = daoFactory.getMigrationStepExecutorAdmin();
this.scriptProvider = scriptProvider;
this.shouldCreateFromScratch = shouldCreateFromScratch;
this.forceCreateWithInitialData = forceCreateWithInitialData;
}
/**
......@@ -286,7 +295,7 @@ public final class DBMigrationEngine
{
adminDAO.createOwner();
adminDAO.createGroups();
if (scriptProvider.isDumpRestore(version))
if (scriptProvider.isDumpRestore(version) && !forceCreateWithInitialData)
{
operationLog.info(String.format("Restoring from dump the database of the version %s.", version));
adminDAO.restoreDatabaseFromDump(scriptProvider.getDumpFolder(version), version);
......
......@@ -67,6 +67,8 @@ public class DatabaseConfigurationContext implements DisposableBean
private boolean createFromScratch;
private boolean forceCreateWithInitialData;
private boolean scriptSingleStepMode;
private IDataSourceFactory dataSourceFactory = new BasicDataSourceFactory();
......@@ -162,6 +164,7 @@ public class DatabaseConfigurationContext implements DisposableBean
operationLog.info(String.format("owner = %s", getOwner()));
operationLog.info(String.format("scriptFolder = %s", getScriptFolder()));
operationLog.info(String.format("createFromScratch = %s", isCreateFromScratch()));
operationLog.info(String.format("forceCreateWithInitialData = %s", isForceCreateWithInitialData()));
operationLog.info(String.format("scriptSingleStepMode = %s", isScriptSingleStepMode()));
operationLog.info(String.format("maxActiveConnections = %d",
dataSourceFactory.getMaxActive()));
......@@ -568,6 +571,19 @@ public class DatabaseConfigurationContext implements DisposableBean
this.createFromScratch = createFromScratch;
}
public final boolean isForceCreateWithInitialData()
{
return forceCreateWithInitialData;
}
/**
* Sets the database should be dropped and (re)created from scratch or not.
*/
public final void setForceCreateWithInitialData(final boolean forceCreateWithInitialData)
{
this.forceCreateWithInitialData = forceCreateWithInitialData;
}
/**
* Sets the database should be dropped and (re)created from scratch or not.
*/
......
......@@ -60,6 +60,7 @@ public abstract class AbstractDBTest
final DatabaseConfigurationContext context = createDefaultDBContext();
context.setDatabaseKind("dbtest");
context.setCreateFromScratch(true);
context.setForceCreateWithInitialData(true);
return context;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment