package org.javalite.db_migrator.maven;
import org.apache.maven.plugin.MojoExecutionException;
import org.javalite.db_migrator.DbUtils;
import org.javalite.db_migrator.MigrationManager;
import static java.lang.String.format;
import static org.javalite.db_migrator.DbUtils.*;
/**
* @goal create
*/
public class CreateMojo extends AbstractDbMigrationMojo {
public void executeMojo() throws MojoExecutionException {
try {
String createSql = blank(getCreateSql()) ? "create database %s" : getCreateSql();
String databaseName = DbUtils.extractDatabaseName(getUrl());
switch (DbUtils.databaseType(getUrl())) {
case MYSQL:
break;
case SQL_SERVER:
break;
case POSTGRESQL:
databaseName = "\"" + databaseName + "\"";
break;
}
openConnection(true);
exec(format(createSql, databaseName));
getLog().info("Created database " + getUrl());
} catch (Exception e) {
throw new MojoExecutionException("Failed to create database: " + getUrl(), e);
} finally {
closeConnection();
}
try{
openConnection();
new MigrationManager(getMigrationsPath()).createSchemaVersionTable();
}catch(Exception e){
throw new MojoExecutionException("failed to create SCHEMA_VERSION table", e);
}finally {
closeConnection();
}
}
}