/**
  * @param ExecutedUnavailableMigrationsException $e
  * @param Configuration                          $configuration
  */
 protected function handleExecutedUnavailableMigrationsException(ExecutedUnavailableMigrationsException $e, Configuration $configuration)
 {
     $this->error('WARNING! You have previously executed migrations in the database that are not registered migrations.');
     foreach ($e->getMigrations() as $migration) {
         $this->line(sprintf('    <comment>>></comment> %s (<comment>%s</comment>)', $configuration->getDateTime($migration), $migration));
     }
     if (!$this->confirm('Are you sure you wish to continue?')) {
         $this->error('Migration cancelled!');
         die;
     }
 }
 /**
  * @param array         $migrations
  * @param Configuration $configuration
  */
 protected function showVersions(array $migrations = [], Configuration $configuration)
 {
     $migratedVersions = $configuration->getMigratedVersions();
     foreach ($migrations as $version) {
         $isMigrated = in_array($version->getVersion(), $migratedVersions);
         $status = $isMigrated ? '<info>migrated</info>' : '<error>not migrated</error>';
         $migrationDescription = '';
         if ($version->getMigration()->getDescription()) {
             $migrationDescription = str_repeat(' ', 5) . $version->getMigration()->getDescription();
         }
         $formattedVersion = $configuration->getDateTime($version->getVersion());
         $this->line('    <comment>>></comment> ' . $formattedVersion . ' (<comment>' . $version->getVersion() . '</comment>)' . str_repeat(' ', 49 - strlen($formattedVersion) - strlen($version->getVersion())) . $status . $migrationDescription);
     }
 }