/** * @dataProvider prefixProvider * @param string $prefix */ public function testRevertPrefixedTables($prefix) { $this->config['db']['mysql_test']['prefix'] = $prefix; $this->config['db']['mysql_test']['schema_version_table_name'] = $prefix . 'schema_migrations'; $runner = new Ruckusing_FrameworkRunner($this->config, array(__FILE__, 'ENV=mysql_test', 'db:migrate', 'VERSION=0')); $output = $runner->execute(); /* @var $adapter Ruckusing_Adapter_MySQL_Base */ $adapter = $runner->get_adapter(); $runner->logger = null; $runner->initialize_logger(); $adapter->logger = $runner->logger; $adapter->drop_table($adapter->get_schema_version_table_name()); $this->assertFalse($adapter->table_exists($prefix . 'schema_migrations', true)); $this->assertFalse($adapter->table_exists($prefix . 'some_table', true)); }
/** * @param array $argv * @return Ruckusing_Adapter_Interface */ protected function migrateDatabase($argv) { $this->defineConstants(); $runnerReflection = new ReflectionClass('Ruckusing_FrameworkRunner'); defined('RUCKUSING_SCHEMA_TBL_NAME') or define('RUCKUSING_SCHEMA_TBL_NAME', WPT_DB_PREFIX . 'schema_info'); defined('RUCKUSING_TS_SCHEMA_TBL_NAME') or define('RUCKUSING_TS_SCHEMA_TBL_NAME', WPT_DB_PREFIX . 'schema_migrations'); defined('RUCKUSING_WORKING_BASE') or define('RUCKUSING_WORKING_BASE', dirname(dirname(__FILE__))); defined('RUCKUSING_BASE') or define('RUCKUSING_BASE', dirname(dirname(dirname($runnerReflection->getFileName())))); $databaseDirectory = RUCKUSING_WORKING_BASE . DIRECTORY_SEPARATOR . 'db'; $config = array('db' => array('development' => array('type' => DB_TYPE, 'host' => reset(explode(':', $this->wp->getDbHost())), 'port' => next(explode(':', $this->wp->getDbHost() . ':3306')), 'database' => $this->wp->getDbName(), 'directory' => 'wp_testing', 'user' => $this->wp->getDbUser(), 'password' => $this->wp->getDbPassword(), 'charset' => $this->wp->getDbCharset())), 'db_dir' => $databaseDirectory, 'migrations_dir' => array('default' => $databaseDirectory . DIRECTORY_SEPARATOR . 'migrations'), 'log_dir' => $this->wp->getTempDir() . 'wp_testing_' . md5(__FILE__)); $runner = new Ruckusing_FrameworkRunner($config, $argv); restore_error_handler(); restore_exception_handler(); $runner->execute(); /* @var $adapter Ruckusing_Adapter_Interface */ $adapter = $runner->get_adapter(); $adapter->logger = new Ruckusing_Util_Logger($config['log_dir'] . DIRECTORY_SEPARATOR . 'development.log'); return $adapter; }