/** * Установка миграций * Копирует миграции в папку миграций ($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; }