Esempio n. 1
0
 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);
         }
     }
 }
Esempio n. 2
0
 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]);
     }
 }
Esempio n. 3
0
 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]);
     }
 }