コード例 #1
0
ファイル: up.php プロジェクト: tigron/skeleton-migrate
 /**
  * Execute the Command
  *
  * @access protected
  * @param InputInterface $input
  * @param OutputInterface $output
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     if (!file_exists(\Skeleton\Database\Migration\Config::$migration_directory)) {
         $output->writeln('<error>Config::$migration_directory is not set to a valid directory</error>');
         return 1;
     }
     $output->writeln('Running migrations');
     $migrations = \Skeleton\Database\Migration\Runner::get_runnable();
     foreach ($migrations as $package => $package_migrations) {
         if (count($package_migrations) == 0) {
             continue;
         }
         $output->writeln("\t" . $package);
         foreach ($package_migrations as $package_migration) {
             $output->write("\t\t" . get_class($package_migration) . "\t");
             try {
                 $package_migration->run('up');
                 $output->writeln('<info>ok</info>');
             } catch (\Exception $e) {
                 $output->writeln('<error>' . $e->getMessage() . '</error>');
                 return 1;
             }
         }
     }
     $output->writeln('Database up-to-date');
     return 0;
 }
コード例 #2
0
ファイル: status.php プロジェクト: tigron/skeleton-migrate
 /**
  * Execute the Command
  *
  * @access protected
  * @param InputInterface $input
  * @param OutputInterface $output
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     if (!file_exists(\Skeleton\Database\Migration\Config::$migration_directory)) {
         $output->writeln('<error>Config::$migration_directory is not set to a valid directory</error>');
         return 1;
     }
     $migrations = \Skeleton\Database\Migration\Runner::get_runnable();
     $migration_count = 0;
     foreach ($migrations as $package => $package_migrations) {
         if (count($package_migrations) > 0) {
             $output->writeln('Package ' . $package . ' has outstanding migrations:');
         }
         foreach ($package_migrations as $package_migration) {
             $migration_count++;
             if (preg_match('@\\\\([\\w]+)$@', get_class($package_migration), $matches)) {
                 $classname = $matches[1];
             } else {
                 $classname = get_class($package_migration);
             }
             if ($package == 'project') {
                 $output->writeln("\t" . $classname);
             } else {
                 $output->writeln("\t" . $package . '/' . $classname);
             }
         }
     }
     if ($migration_count == 0) {
         $output->writeln('Database is up-to-date');
     }
     return 0;
 }