. */ /** * Doctrine_Migration_TestCase * * @package Doctrine * @author Konsta Vesterinen * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @category Object Relational Mapping * @link www.phpdoctrine.com * @since 1.0 * @version $Revision$ */ class Doctrine_Migration_TestCase extends Doctrine_UnitTestCase { public function testMigration() { // Upgrade one at a time Doctrine_Migration::migration(1, 2); Doctrine_Migration::migration(2, 3); Doctrine_Migration::migration(3, 4); // Then revert back to version 1 Doctrine_Migration::migration(4, 1); // Check to make sure the current version is 1 $this->assertEqual(Doctrine_Migration::getCurrentVersion(), 1); } } class MigrationTestTable extends Doctrine_Record { public function setTableDefinition() { $this->hasColumn('field1', 'string'); } } class Migration2 extends Doctrine_Migration { public function up() { $this->createTable('migration_test_table', array('field1' => array('type' => 'string'))); } public function down() { $this->dropTable('migration_test_table'); } } class Migration3 extends Doctrine_Migration { public function up() { $this->addColumn('migration_test_table', 'field1', 'string'); } public function down() { $this->renameColumn('migration_test_table', 'field1', 'field2'); } } class Migration4 extends Doctrine_Migration { public function up() { $this->changeColumn('migration_test_table', 'field1', 'integer'); } public function down() { $this->changeColumn('migration_test_table', 'field1', 'string'); } }