package dbmigrate.app; import java.io.File; import java.sql.Connection; import java.sql.SQLException; import dbmigrate.executor.ExecutorEngine; import dbmigrate.gui.ApplicationFrame; import dbmigrate.logging.HistoryStorage; import dbmigrate.logging.LoggerFactory; import dbmigrate.model.db.DbConnector; import dbmigrate.model.operation.MigrationConfiguration; import dbmigrate.parser.Loader; public class Application { private final static int ARGS_LENGTH = 5; private static ApplicationFrame app; public static void configureExecutorEngine(ExecutorEngine executorEngine, int dbaseType) { if (dbaseType == DbConnector.POSTGRESQL_DB) { executorEngine.registerPostgresExecutors(); } else if (dbaseType == DbConnector.ORACLE_DB) { executorEngine.registerOracleExecutors(); } } public static void main(String[] args) { if (args.length < Application.ARGS_LENGTH) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { app = new ApplicationFrame(); app.setVisible(true); } }); return; } boolean performValidation = false; if (args.length > Application.ARGS_LENGTH) { for (String opt : args) { if ("--validate".equals(opt)) { performValidation = true; } } } try { DbConnector dbConnector = DbConnector.instance(); Connection connection = dbConnector.getConnection( DbConnector.POSTGRESQL_DB, args[1], args[2], args[3], args[4]); HistoryStorage historyStorage = new HistoryStorage(); historyStorage.equals(connection); MigrationConfiguration migrationConfiguration = Loader.load( new File("migrations/" + args[0]), performValidation); ExecutorEngine executorEngine = new ExecutorEngine(connection, migrationConfiguration, true); Application.configureExecutorEngine(executorEngine, DbConnector.POSTGRESQL_DB); executorEngine.setLogger(LoggerFactory.getLogger()); executorEngine.executeMigration(); try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } catch (Exception ex) { ex.printStackTrace(); } } }