示例#1
0
 /**
  * Установка миграций
  * Копирует миграции в папку миграций ($this->migrationPath = /console/migrations/)
  */
 protected function migrates($migrationPath)
 {
     if (!is_dir($migrationPath)) {
         return 0;
     }
     if (!is_dir($this->migrationPath)) {
         FileHelper::createDirectory($this->migrationPath);
     }
     $this->output("> migrates from " . $migrationPath);
     $migrateFiles = FileHelper::findFiles($migrationPath, ['only' => ['m*.php'], 'recursive' => false]);
     $migration = new MigrateController("module-migration", Yii::$app, ['migrationPath' => $this->migrationPath, 'db' => Yii::$app->db, 'interactive' => false]);
     $cnt = 0;
     foreach ($migrateFiles as $migrateFile) {
         $version = basename($migrateFile);
         try {
             copy($migrateFile, $this->migrationPath . '/' . $version);
             $migration->actionTo($version);
             $cnt++;
         } catch (\Exception $exception) {
             $this->output($exception->getMessage());
         }
     }
     if ($cnt > 0) {
         $this->output("  - To cancel migations:");
         $this->output("    yii migrate/down " . $cnt);
     }
     return $cnt;
 }