/**
  * @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));
 }
Beispiel #2
0
 /**
  * @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;
 }