public function __construct(Version $version) { $this->configuration = $version->getConfiguration(); $this->outputWriter = $this->configuration->getOutputWriter(); $this->connection = $this->configuration->getConnection(); $this->sm = $this->connection->getSchemaManager(); $this->platform = $this->connection->getDatabasePlatform(); $this->version = $version; }
public function testSkipMigrateUp() { $version = new \Doctrine\DBAL\Migrations\Version($this->config, 1, 'Doctrine\\DBAL\\Migrations\\Tests\\Functional\\MigrationSkipMigration'); $this->assertFalse($this->config->hasVersionMigrated($version)); $version->execute('up'); $schema = $this->connection->getSchemaManager()->createSchema(); $this->assertFalse($schema->hasTable('foo')); $this->assertTrue($this->config->hasVersionMigrated($version)); }
public function __construct(Configuration $configuration, $version, $class) { $this->_configuration = $configuration; $this->_outputWriter = $configuration->getOutputWriter(); $this->_version = $version; $this->_class = $class; $this->_connection = $configuration->getConnection(); $this->_sm = $this->_connection->getSchemaManager(); $this->_platform = $this->_connection->getDatabasePlatform(); $this->_migration = new $class($this); }
public function __construct(Configuration $configuration, $version, $class) { $this->configuration = $configuration; $this->outputWriter = $configuration->getOutputWriter(); $this->class = $class; $this->connection = $configuration->getConnection(); $this->sm = $this->connection->getSchemaManager(); $this->platform = $this->connection->getDatabasePlatform(); $this->migration = new $class($this); $this->version = $this->migration->getName() ?: $version; }
/** * @brief Resynchronizes all sequences of a database after using INSERTs * without leaving out the auto-incremented column. * @param \OC\DB\Connection $conn * @return null */ public function resynchronizeDatabaseSequences(Connection $conn) { $databaseName = $conn->getDatabase(); foreach ($conn->getSchemaManager()->listSequences() as $sequence) { $sequenceName = $sequence->getName(); $sqlInfo = 'SELECT table_schema, table_name, column_name FROM information_schema.columns WHERE column_default = ? AND table_catalog = ?'; $sequenceInfo = $conn->fetchAssoc($sqlInfo, array("nextval('{$sequenceName}'::regclass)", $databaseName)); $tableName = $sequenceInfo['table_name']; $columnName = $sequenceInfo['column_name']; $sqlMaxId = "SELECT MAX({$columnName}) FROM {$tableName}"; $sqlSetval = "SELECT setval('{$sequenceName}', ({$sqlMaxId}))"; $conn->executeQuery($sqlSetval); } }