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); } } }
protected function ensureMigrationsTable() { if (!$this->connection->tableExists($this->migrationsTableName)) { $schema = new Rails\ActiveRecord\Schema\Schema($this->connection); $schema->createTable($this->migrationsTableName, ['id' => false], function ($t) { $t->string('version'); }); $schema->addIndex($this->migrationsTableName, 'version', ['unique' => true]); } }
protected function ensureMigrationsTableExists() { $metadata = new Metadata($this->adapter); if (!in_array($this->migrationsTableName, $metadata->getTableNames())) { $schema = new Schema\Schema($this->adapter); $schema->createTable($this->migrationsTableName, ['id' => false], function ($t) { $t->string('version'); }); $schema->addIndex($this->migrationsTableName, 'version', ['unique' => true]); } }