getMigrationsTableName() public method

Returns the migration table name
public getMigrationsTableName ( ) : string
return string $migrationsTableName The migration table name
 public function getMigrationsInfos()
 {
     $numExecutedUnavailableMigrations = count($this->executedUnavailableMigrations);
     $numNewMigrations = count(array_diff($this->availableMigrations, $this->executedMigrations));
     $infos = ['Name' => $this->configuration->getName() ? $this->configuration->getName() : 'Doctrine Database Migrations', 'Database Driver' => $this->configuration->getConnection()->getDriver()->getName(), 'Database Name' => $this->configuration->getConnection()->getDatabase(), 'Configuration Source' => $this->configuration instanceof AbstractFileConfiguration ? $this->configuration->getFile() : 'manually configured', 'Version Table Name' => $this->configuration->getMigrationsTableName(), 'Version Column Name' => $this->configuration->getMigrationsColumnName(), 'Migrations Namespace' => $this->configuration->getMigrationsNamespace(), 'Migrations Directory' => $this->configuration->getMigrationsDirectory(), 'Previous Version' => $this->getFormattedVersionAlias('prev'), 'Current Version' => $this->getFormattedVersionAlias('current'), 'Next Version' => $this->getFormattedVersionAlias('next'), 'Latest Version' => $this->getFormattedVersionAlias('latest'), 'Executed Migrations' => count($this->executedMigrations), 'Executed Unavailable Migrations' => $numExecutedUnavailableMigrations, 'Available Migrations' => count($this->availableMigrations), 'New Migrations' => $numNewMigrations];
     return $infos;
 }
Example #2
0
 /**
  * Write a migration SQL file to the given path
  *
  * @param string $path The path to write the migration SQL file.
  * @param string $to   The version to migrate to.
  *
  * @return boolean $written
  */
 public function writeSqlFile($path, $to = null)
 {
     $sql = $this->getSql($to);
     $from = $this->configuration->getCurrentVersion();
     if ($to === null) {
         $to = $this->configuration->getLatestVersion();
     }
     $direction = $from > $to ? 'down' : 'up';
     $this->outputWriter->write(sprintf("# Migrating from %s to %s\n", $from, $to));
     $sqlWriter = new SqlFileWriter($this->configuration->getMigrationsTableName(), $path, $this->outputWriter);
     return $sqlWriter->write($sql, $direction);
 }
Example #3
0
 /**
  * Write a migration SQL file to the given path
  *
  * @param string $path The path to write the migration SQL file.
  * @param string $to   The version to migrate to.
  *
  * @return boolean $written
  */
 public function writeSqlFile($path, $to = null)
 {
     $sql = $this->getSql($to);
     $from = $this->configuration->getCurrentVersion();
     if ($to === null) {
         $to = $this->configuration->getLatestVersion();
     }
     $direction = $from > $to ? 'down' : 'up';
     $string = sprintf("# Doctrine Migration File Generated on %s\n", date('Y-m-d H:i:s'));
     $string .= sprintf("# Migrating from %s to %s\n", $from, $to);
     foreach ($sql as $version => $queries) {
         $string .= "\n# Version " . $version . "\n";
         foreach ($queries as $query) {
             $string .= $query . ";\n";
         }
         if ($direction == "down") {
             $string .= "DELETE FROM " . $this->configuration->getMigrationsTableName() . " WHERE version = '" . $version . "';\n";
         } else {
             $string .= "INSERT INTO " . $this->configuration->getMigrationsTableName() . " (version) VALUES ('" . $version . "');\n";
         }
     }
     if (is_dir($path)) {
         $path = realpath($path);
         $path = $path . '/doctrine_migration_' . date('YmdHis') . '.sql';
     }
     $this->outputWriter->write("\n" . sprintf('Writing migration file to "<info>%s</info>"', $path));
     return file_put_contents($path, $string);
 }
Example #4
0
 /**
  * Write a migration SQL file to the given path
  *
  * @param string $path      The path to write the migration SQL file.
  * @param string $direction The direction to execute.
  *
  * @return boolean $written
  */
 public function writeSqlFile($path, $direction = 'up')
 {
     $queries = $this->execute($direction, true);
     $this->outputWriter->write("\n# Version " . $this->version . "\n");
     $sqlQueries = [$this->version => $queries];
     $sqlWriter = new SqlFileWriter($this->configuration->getMigrationsTableName(), $path, $this->outputWriter);
     return $sqlWriter->write($sqlQueries, $direction);
 }
Example #5
0
 private function _buildCodeFromSql(Configuration $configuration, array $sql)
 {
     $code = array();
     foreach ($sql as $query) {
         if (strpos($query, $configuration->getMigrationsTableName()) !== false) {
             continue;
         }
         $code[] = "\$this->_addSql('" . $query . "');";
     }
     return implode("\n", $code);
 }
Example #6
0
 /**
  * Write a migration SQL file to the given path
  *
  * @param string $path      The path to write the migration SQL file.
  * @param string $direction The direction to execute.
  *
  * @return boolean $written
  */
 public function writeSqlFile($path, $direction = self::DIRECTION_UP)
 {
     $queries = $this->execute($direction, true);
     if (!empty($this->params)) {
         throw MigrationException::migrationNotConvertibleToSql($this->class);
     }
     $this->outputWriter->write("\n-- Version " . $this->version . "\n");
     $sqlQueries = [$this->version => $queries];
     $sqlWriter = new SqlFileWriter($this->configuration->getMigrationsColumnName(), $this->configuration->getMigrationsTableName(), $path, $this->outputWriter);
     return $sqlWriter->write($sqlQueries, $direction);
 }
 private function buildCodeFromSql(Configuration $configuration, array $sql)
 {
     $currentPlatform = $configuration->getConnection()->getDatabasePlatform()->getName();
     $code = array("\$this->abortIf(\$this->connection->getDatabasePlatform()->getName() != \"{$currentPlatform}\", \"Migration can only be executed safely on '{$currentPlatform}'.\");", "");
     foreach ($sql as $query) {
         if (strpos($query, $configuration->getMigrationsTableName()) !== false) {
             continue;
         }
         $code[] = "\$this->addSql(\"{$query}\");";
     }
     return implode("\n", $code);
 }
 public static function configureMigrations(ContainerInterface $container, Configuration $configuration)
 {
     if (!$configuration->getMigrationsDirectory()) {
         $dir = $container->getParameter('doctrine_migrations.dir_name');
         if (!file_exists($dir)) {
             mkdir($dir, 0777, true);
         }
         $configuration->setMigrationsDirectory($dir);
     } else {
         $dir = $configuration->getMigrationsDirectory();
         // class Kernel has method getKernelParameters with some of the important path parameters
         $pathPlaceholderArray = array('kernel.root_dir', 'kernel.cache_dir', 'kernel.logs_dir');
         foreach ($pathPlaceholderArray as $pathPlaceholder) {
             if ($container->hasParameter($pathPlaceholder) && preg_match('/\\%' . $pathPlaceholder . '\\%/', $dir)) {
                 $dir = str_replace('%' . $pathPlaceholder . '%', $container->getParameter($pathPlaceholder), $dir);
             }
         }
         if (!file_exists($dir)) {
             mkdir($dir, 0777, true);
         }
         $configuration->setMigrationsDirectory($dir);
     }
     if (!$configuration->getMigrationsNamespace()) {
         $configuration->setMigrationsNamespace($container->getParameter('doctrine_migrations.namespace'));
     }
     if (!$configuration->getName()) {
         $configuration->setName($container->getParameter('doctrine_migrations.name'));
     }
     // For backward compatibility, need use a table from parameters for overwrite the default configuration
     if (!$configuration->getMigrationsTableName() || !$configuration instanceof AbstractFileConfiguration) {
         $configuration->setMigrationsTableName($container->getParameter('doctrine_migrations.table_name'));
     }
     // Migrations is not register from configuration loader
     if (!$configuration instanceof AbstractFileConfiguration) {
         $configuration->registerMigrationsFromDirectory($configuration->getMigrationsDirectory());
     }
     if ($container->hasParameter('doctrine_migrations.organize_migrations')) {
         $organizeMigrations = $container->getParameter('doctrine_migrations.organize_migrations');
         switch ($organizeMigrations) {
             case Configuration::VERSIONS_ORGANIZATION_BY_YEAR:
                 $configuration->setMigrationsAreOrganizedByYear(true);
                 break;
             case Configuration::VERSIONS_ORGANIZATION_BY_YEAR_AND_MONTH:
                 $configuration->setMigrationsAreOrganizedByYearAndMonth(true);
                 break;
             case false:
                 break;
             default:
                 throw new InvalidConfigurationException('Unrecognized option "' . $organizeMigrations . '" under "organize_migrations"');
         }
     }
     self::injectContainerToMigrations($container, $configuration->getMigrations());
 }
 public function getMigrationsInfos()
 {
     $formattedVersions = [];
     foreach (['prev', 'current', 'next', 'latest'] as $alias) {
         $version = $this->configuration->resolveVersionAlias($alias);
         if ($version === null) {
             if ($alias == 'next') {
                 $formattedVersions[$alias] = 'Already at latest version';
             } elseif ($alias == 'prev') {
                 $formattedVersions[$alias] = 'Already at first version';
             }
         } elseif ($version === '0') {
             $formattedVersions[$alias] = '<comment>0</comment>';
         } else {
             $formattedVersions[$alias] = $this->configuration->getDateTime($version) . ' (<comment>' . $version . '</comment>)';
         }
     }
     $numExecutedUnavailableMigrations = count($this->executedUnavailableMigrations);
     $numNewMigrations = count(array_diff($this->availableMigrations, $this->executedMigrations));
     $infos = ['Name' => $this->configuration->getName() ? $this->configuration->getName() : 'Doctrine Database Migrations', 'Database Driver' => $this->configuration->getConnection()->getDriver()->getName(), 'Database Name' => $this->configuration->getConnection()->getDatabase(), 'Configuration Source' => $this->configuration instanceof AbstractFileConfiguration ? $this->configuration->getFile() : 'manually configured', 'Version Table Name' => $this->configuration->getMigrationsTableName(), 'Version Column Name' => $this->configuration->getMigrationsColumnName(), 'Migrations Namespace' => $this->configuration->getMigrationsNamespace(), 'Migrations Directory' => $this->configuration->getMigrationsDirectory(), 'Previous Version' => $formattedVersions['prev'], 'Current Version' => $formattedVersions['current'], 'Next Version' => $formattedVersions['next'], 'Latest Version' => $formattedVersions['latest'], 'Executed Migrations' => count($this->executedMigrations), 'Executed Unavailable Migrations' => $numExecutedUnavailableMigrations, 'Available Migrations' => count($this->availableMigrations), 'New Migrations' => $numNewMigrations];
     return $infos;
 }
Example #10
0
 /**
  * Write a migration SQL file to the given path
  *
  * @param string $path      The path to write the migration SQL file.
  * @param string $direction The direction to execute.
  *
  * @return boolean $written
  */
 public function writeSqlFile($path, $direction = 'up')
 {
     $queries = $this->execute($direction, true);
     $string = sprintf("# Doctrine Migration File Generated on %s\n", date('Y-m-d H:i:s'));
     $string .= "\n# Version " . $this->version . "\n";
     foreach ($queries as $query) {
         $string .= $query . ";\n";
     }
     if ($direction == "down") {
         $string .= "DELETE FROM " . $this->configuration->getMigrationsTableName() . " WHERE version = '" . $this->version . "';\n";
     } else {
         $string .= "INSERT INTO " . $this->configuration->getMigrationsTableName() . " (version) VALUES ('" . $this->version . "');\n";
     }
     if (is_dir($path)) {
         $path = realpath($path);
         $path = $path . '/doctrine_migration_' . date('YmdHis') . '.sql';
     }
     $this->outputWriter->write("\n" . sprintf('Writing migration file to "<info>%s</info>"', $path));
     return file_put_contents($path, $string);
 }
Example #11
0
 public static function configureMigrations(ContainerInterface $container, Configuration $configuration)
 {
     if (!$configuration->getMigrationsDirectory()) {
         $dir = $container->getParameter('doctrine_migrations.dir_name');
         if (!file_exists($dir)) {
             mkdir($dir, 0777, true);
         }
         $configuration->setMigrationsDirectory($dir);
     } else {
         $dir = $configuration->getMigrationsDirectory();
         // class Kernel has method getKernelParameters with some of the important path parameters
         $pathPlaceholderArray = array('kernel.root_dir', 'kernel.cache_dir', 'kernel.logs_dir');
         foreach ($pathPlaceholderArray as $pathPlaceholder) {
             if ($container->hasParameter($pathPlaceholder) && preg_match('/\\%' . $pathPlaceholder . '\\%/', $dir)) {
                 $dir = str_replace('%' . $pathPlaceholder . '%', $container->getParameter($pathPlaceholder), $dir);
             }
         }
         if (!file_exists($dir)) {
             mkdir($dir, 0777, true);
         }
         $configuration->setMigrationsDirectory($dir);
     }
     if (!$configuration->getMigrationsNamespace()) {
         $configuration->setMigrationsNamespace($container->getParameter('doctrine_migrations.namespace'));
     }
     if (!$configuration->getName()) {
         $configuration->setName($container->getParameter('doctrine_migrations.name'));
     }
     // For backward compatibility, need use a table from parameters for overwrite the default configuration
     if (!$configuration->getMigrationsTableName() || !$configuration instanceof AbstractFileConfiguration) {
         $configuration->setMigrationsTableName($container->getParameter('doctrine_migrations.table_name'));
     }
     // Migrations is not register from configuration loader
     if (!$configuration instanceof AbstractFileConfiguration) {
         $configuration->registerMigrationsFromDirectory($configuration->getMigrationsDirectory());
     }
     self::injectContainerToMigrations($container, $configuration->getMigrations());
 }
 /**
  * Returns PHP code for a migration file that "executes" the given
  * array of SQL statements.
  *
  * @param \Doctrine\DBAL\Migrations\Configuration\Configuration $configuration
  * @param array $sql
  * @return string
  */
 protected function buildCodeFromSql(\Doctrine\DBAL\Migrations\Configuration\Configuration $configuration, array $sql)
 {
     $currentPlatform = $configuration->getConnection()->getDatabasePlatform()->getName();
     $code = array('$this->abortIf($this->connection->getDatabasePlatform()->getName() != "' . $currentPlatform . '");', '');
     foreach ($sql as $query) {
         if (strpos($query, $configuration->getMigrationsTableName()) !== false) {
             continue;
         }
         $code[] = '$this->addSql("' . $query . '");';
     }
     return implode("\n", $code);
 }
Example #13
0
 private function buildCodeFromSql(Configuration $configuration, array $sql, $formatted = false, $lineLength = 120)
 {
     $currentPlatform = $configuration->getConnection()->getDatabasePlatform()->getName();
     $code = [];
     foreach ($sql as $query) {
         if (stripos($query, $configuration->getMigrationsTableName()) !== false) {
             continue;
         }
         if ($formatted) {
             if (!class_exists('\\SqlFormatter')) {
                 throw new \InvalidArgumentException('The "--formatted" option can only be used if the sql formatter is installed.' . 'Please run "composer require jdorn/sql-formatter".');
             }
             $maxLength = $lineLength - 18 - 8;
             // max - php code length - indentation
             if (strlen($query) > $maxLength) {
                 $query = \SqlFormatter::format($query, false);
             }
         }
         $code[] = sprintf("\$this->addSql(%s);", var_export($query, true));
     }
     if (!empty($code)) {
         array_unshift($code, sprintf("\$this->abortIf(\$this->connection->getDatabasePlatform()->getName() !== %s, %s);", var_export($currentPlatform, true), var_export(sprintf("Migration can only be executed safely on '%s'.", $currentPlatform), true)), "");
     }
     return implode("\n", $code);
 }
Example #14
0
 /**
  * Returns PHP code for a migration file that "executes" the given
  * array of SQL statements.
  *
  * @param \Doctrine\DBAL\Migrations\Configuration\Configuration $configuration
  * @param array $sql
  * @return string
  */
 protected function buildCodeFromSql(\Doctrine\DBAL\Migrations\Configuration\Configuration $configuration, array $sql)
 {
     $currentPlatform = $configuration->getConnection()->getDatabasePlatform()->getName();
     $code = array("\$this->abortIf(\$this->connection->getDatabasePlatform()->getName() != \"{$currentPlatform}\");", "");
     foreach ($sql as $query) {
         if (strpos($query, $configuration->getMigrationsTableName()) !== FALSE) {
             continue;
         }
         $code[] = "\$this->addSql(\"{$query}\");";
     }
     return implode("\n", $code);
 }
Example #15
0
 private function buildCodeFromSql(Configuration $configuration, array $sql)
 {
     $currentPlatform = $configuration->getConnection()->getDatabasePlatform()->getName();
     $code = array();
     foreach ($sql as $query) {
         if (stripos($query, $configuration->getMigrationsTableName()) !== false) {
             continue;
         }
         $code[] = sprintf("\$this->addSql(%s);", var_export($query, true));
     }
     if ($code) {
         array_unshift($code, sprintf("\$this->abortIf(\$this->connection->getDatabasePlatform()->getName() != %s, %s);", var_export($currentPlatform, true), var_export(sprintf("Migration can only be executed safely on '%s'.", $currentPlatform), true)), "");
     }
     return implode("\n", $code);
 }
Example #16
0
 public function markNotMigrated()
 {
     $this->configuration->createMigrationTable();
     $this->connection->executeQuery("DELETE FROM " . $this->configuration->getMigrationsTableName() . " WHERE version = ?", array($this->version));
 }
 public function testMigrationsTable()
 {
     $config = new Configuration($this->getSqliteConnection());
     $this->assertEquals("doctrine_migration_versions", $config->getMigrationsTableName());
 }
 /**
  * Returns PHP code for a migration file that "executes" the given
  * array of SQL statements.
  *
  * @param Configuration $configuration
  * @param array $sql
  * @return string
  */
 protected function buildCodeFromSql(Configuration $configuration, array $sql)
 {
     $currentPlatform = $configuration->getConnection()->getDatabasePlatform()->getName();
     $code = [];
     foreach ($sql as $query) {
         if (stripos($query, $configuration->getMigrationsTableName()) !== false) {
             continue;
         }
         $code[] = sprintf('$this->addSql(%s);', var_export($query, true));
     }
     if (!empty($code)) {
         array_unshift($code, sprintf('$this->abortIf($this->connection->getDatabasePlatform()->getName() != %s, %s);', var_export($currentPlatform, true), var_export(sprintf('Migration can only be executed safely on "%s".', $currentPlatform), true)), '');
     }
     return implode(chr(10), $code);
 }