protected function execute(InputInterface $input, OutputInterface $output) { $configuration = CodePax_Config::getInstance(CONFIG_PATH . 'config.ini'); try { $sql_engine = CodePax_DbVersioning_SqlEngines_Factory::factory($configuration); $dir = ABS_PATH . 'app' . DIRECTORY_SEPARATOR . 'db' . DIRECTORY_SEPARATOR; switch (strtolower($configuration->db_engine)) { case 'mysql': $sql_file_name = 'db_versions_mysql.sql'; break; case 'pgsql': $sql_file_name = 'db_versions_pgsql.sql'; break; case 'sqlsrv': $sql_file_name = 'db_versions_sqlsrv.sql'; break; } $sql_engine->executeChangeScript($dir . $sql_file_name); } catch (CodePax_DbVersioning_Exception $e) { $output->writeln('An error ocurred: ' . $e->getMessage()); exit; } catch (Exception $e) { $output->writeln('Generic error: ' . $e->getMessage()); exit; } $output->writeln('CodePax successfully installed!'); }
protected function execute(InputInterface $input, OutputInterface $output) { $configuration = CodePax_Config::getInstance(CONFIG_PATH . 'config.ini'); $db_versions_model = CodePax_DbVersions::factory($configuration); $latest_structure_version = $db_versions_model->getLatestVersion(CodePax_DbVersions::TYPE_CHANGE_SCRIPT); $latest_data_version = $db_versions_model->getLatestVersion(CodePax_DbVersions::TYPE_DATA_CHANGE_SCRIPT); $db_versioning_handler = CodePax_DbVersioning_Environments_Factory::factory($configuration); $change_scripts = $db_versioning_handler->getChangeScripts(); $data_change_scripts = $db_versioning_handler->getDataChangeScripts(); $output->writeln('Environment: ' . strtoupper($configuration->application_environment)); $output->writeln(''); $output->writeln('Database name: ' . $configuration->db_name); $output->writeln('Database structure version: ' . $latest_structure_version[CodePax_DbVersions::VERSION_ATTRIBUTE]); $output->writeln('Database structure last update: ' . $latest_structure_version[CodePax_DbVersions::DATE_ADDED_ATTRIBUTE]); $output->writeln('Database data version: ' . $latest_data_version[CodePax_DbVersions::VERSION_ATTRIBUTE]); $output->writeln('Database data last update: ' . (!empty($latest_data_version[CodePax_DbVersions::DATE_ADDED_ATTRIBUTE]) ? $latest_data_version[CodePax_DbVersions::DATE_ADDED_ATTRIBUTE] : 'n/a')); $output->writeln(''); if (strtolower($configuration->application_environment) == 'dev') { $output->writeln('Baseline version: ' . $db_versioning_handler->getLatestBaselineVersion()); } $output->writeln('Change structure scripts to run: '); $output->writeln(!empty($change_scripts) ? implode("\n", array_keys($change_scripts)) : 'n/a'); $output->writeln('Change data scripts to run: '); $output->writeln(!empty($data_change_scripts) ? implode("\n", array_keys($data_change_scripts)) : 'n/a'); }
/** * Returns the config loader class instance * * @param string $_config_file * @return CodePax_Config * */ public static function getInstance($_config_file) { if (is_null(self::$instance)) { self::$instance = new CodePax_Config($_config_file); } return self::$instance; }
protected function execute(InputInterface $input, OutputInterface $output) { $configuration = CodePax_Config::getInstance(CONFIG_PATH . 'config.ini'); $preserve_test_data = false; if ($input->getOption('preserve-test-data')) { $preserve_test_data = true; } try { $db_versioning_handler = CodePax_DbVersioning_Environments_Factory::factory($configuration); $generate_test_data = false; // generate test data if (strtolower($configuration->application_environment) == 'dev' && isset($preserve_test_data) && $preserve_test_data == true) { $generate_test_data = true; } $db_scripts_result = $db_versioning_handler->runScripts($generate_test_data); unset($db_scripts_result['run_change_scripts'], $db_scripts_result['run_data_change_scripts']); } catch (CodePax_DbVersioning_Exception $e) { $output->writeln($e->getMessage()); exit; } catch (Exception $e) { $output->writeln($e->getMessage()); exit; } $output->writeln('Everything went smoothly!'); }
protected function execute(InputInterface $input, OutputInterface $output) { $configuration = CodePax_Config::getInstance(CONFIG_PATH . 'config.ini'); if (strtolower($configuration->application_environment) == 'stg') { try { $db_versioning_handler = CodePax_DbVersioning_Environments_Factory::factory($configuration); $db_versioning_handler->generateBaseline(); } catch (CodePax_DbVersioning_Exception $e) { $output->writeln('An error ocurred: ' . $e->getMessage()); exit; } catch (Exception $e) { $output->writeln('Generic error: ' . $e->getMessage()); exit; } $output->writeln('A new baseline has been generated!'); } else { $output->writeln('You are not running on stg. The ' . strtolower($configuration->application_environment) . ' environment was detected'); } }