protected function setUpDatabase(Application $application) { $connManager = $application->getService('defaultConnectionManager'); $connName = 'test'; if ($connManager->connectionExists($connName)) { $connManager->setDefaultConnection($connName); $adapter = $connManager->getAdapter($connName); if ($adapter instanceof MongoConnection) { $adapter->database()->drop(); } else { $params = $adapter->getDriver()->getConnection()->getConnectionParameters(); $filesDir = $application->config()['paths']['root']->expand('db'); $schema = new Schema($adapter); $schema->dropDatabase($params['database']); $schema->createDatabase($params['database']); # Reset connection. $connManager->removeAdapter($connName); $adapter = $connManager->getAdapter($connName); $migrator = new Migrator($adapter, $filesDir); $migrator->run(); # Clear table data. ActiveRecordBase::clearMetadatas(); ActiveRecordBase::clearModelSchemas(); SchemaMigration::setAdapter($adapter); } } }
/** * db:migrate */ public function run() { $this->ensureMigrationsTableExists(); Schema\SchemaMigration::setAdapter($this->adapter); Schema\SchemaMigration::setTableName($this->migrationsTableName); $pending = $this->getPendingMigrations(); foreach ($pending as $version) { $this->runUp($version); } }