コード例 #1
0
 /**
  * Setup commands before test case
  */
 protected function setUp()
 {
     $ruckusing_config = (require RUCKUSING_BASE . '/config/database.inc.php');
     if (!is_array($ruckusing_config) || !(array_key_exists("db", $ruckusing_config) && array_key_exists("mysql_test", $ruckusing_config['db']))) {
         $this->markTestSkipped("\n'mysql_test' DB is not defined in config/database.inc.php\n\n");
     }
     $test_db = $ruckusing_config['db']['mysql_test'];
     //setup our log
     $logger = Ruckusing_Util_Logger::instance(RUCKUSING_BASE . '/tests/logs/test.log');
     $this->adapter = new Ruckusing_Adapter_MySQL_Base($test_db, $logger);
     $this->adapter->logger->log("Test run started: " . date('Y-m-d g:ia T'));
     //create the schema table if necessary
     $this->adapter->create_schema_version_table();
     $framework = new Ruckusing_FrameworkRunner($ruckusing_config, array('ENV=mysql_test'));
     $this->migrations_dir = $framework->migrations_directory();
     if (!is_dir($this->migrations_dir)) {
         mkdir($this->migrations_dir, 0755, true);
     }
 }
コード例 #2
0
 protected function setUp()
 {
     global $ruckusing_db_config;
     if (!is_array($ruckusing_db_config) || !array_key_exists("test", $ruckusing_db_config)) {
         die("\n'test' DB is not defined in config/database.inc.php\n\n");
     }
     $test_db = $ruckusing_db_config['test'];
     //setup our log
     $logger = Ruckusing_Logger::instance(RUCKUSING_BASE . '/tests/logs/test.log');
     $this->adapter = new Ruckusing_MySQLAdapter($test_db, $logger);
     $this->adapter->logger->log("Test run started: " . date('Y-m-d g:ia T'));
     //create the schema table if necessary
     $this->adapter->create_schema_version_table();
     $framework = new Ruckusing_FrameworkRunner($ruckusing_db_config, null);
     $this->migrations_dir = $framework->migrations_directory();
     if (!is_dir($this->migrations_dir)) {
         mkdir($this->migrations_dir);
     }
 }
コード例 #3
0
require RUCKUSING_BASE . '/lib/classes/util/class.Ruckusing_MigratorUtil.php';
require RUCKUSING_BASE . '/lib/classes/class.Ruckusing_FrameworkRunner.php';
$args = parse_args($argv);
$framework = new Ruckusing_FrameworkRunner($ruckusing_db_config, null);
//input sanity check
if (!is_array($args) || is_array($args) && !array_key_exists('name', $args)) {
    print_help(true);
}
$migration_name = $args['name'];
//clear any filesystem stats cache
clearstatcache();
//generate a complete migration file
$next_version = Ruckusing_MigratorUtil::generate_timestamp();
$klass = Ruckusing_NamingUtil::camelcase($migration_name);
$file_name = $next_version . '_' . $klass . '.php';
$migrations_dir = $framework->migrations_directory();
$template_str = get_template($klass);
if (!is_dir($migrations_dir)) {
    printf("\n\tMigrations directory (%s doesn't exist, attempting to create.", $migrations_dir);
    if (mkdir($migrations_dir) === FALSE) {
        printf("\n\tUnable to create migrations directory at %s, check permissions?", $migrations_dir);
    } else {
        printf("\n\tCreated OK");
    }
}
//check to make sure our destination directory is writable
if (!is_writable($migrations_dir)) {
    die_with_error("ERROR: migration directory '" . $migrations_dir . "' is not writable by the current user. Check permissions and try again.");
}
//write it out!
$full_path = $migrations_dir . '/' . $file_name;