예제 #1
0
 /**
  * Migrate the database through scripts in db/migrate.
  */
 public function db_migrate($ver = null)
 {
     try {
         $script = array_shift($GLOBALS['argv']);
         $task = array_shift($GLOBALS['argv']);
         $version = array_shift($GLOBALS['argv']);
         $ver = preg_match('/VERSION=(\\d*)/', $version, $match) ? $match[1] : null;
         Mad_Model_Migration_Migrator::migrate(MAD_ROOT . "/db/migrate/", $ver);
     } catch (Exception $e) {
         echo $e->getMessage();
     }
 }
예제 #2
0
 public function testWithMissingVersionNumbers()
 {
     $dir = dirname(dirname(dirname(dirname(__FILE__)))) . '/fixtures/migrations_with_missing_versions/';
     Mad_Model_Migration_Migrator::migrate($dir, 500);
     $this->assertEquals(4, Mad_Model_Migration_Migrator::getCurrentVersion());
     Mad_Model_Migration_Migrator::migrate($dir, 2);
     $this->assertEquals(2, Mad_Model_Migration_Migrator::getCurrentVersion());
     $e = null;
     try {
         $this->_conn->selectValues("SELECT * FROM reminders");
     } catch (Exception $e) {
     }
     $this->assertInstanceOf('Horde_Db_Exception', $e);
     $user = new User();
     $columns = $user->columnNames();
     $this->assertTrue(in_array('last_name', $columns));
 }