yupe\components\Migrator::checkForBadMigration PHP Method

checkForBadMigration() public method

Проверяем на незавершённые миграции:
public checkForBadMigration ( string $module, boolean $class = false ) : boolean
$module string - required module
$class boolean - migration class
return boolean is updated to migration
    public function checkForBadMigration($module, $class = false)
    {
        echo Yii::t('YupeModule.yupe', "Checking for pending migrations") . '<br />';
        $db = $this->getDbConnection();
        $data = $db->cache(3600, new CDbCacheDependency('select count(id) from {{migrations}}'))->createCommand()->selectDistinct('version, apply_time')->from('{{migrations}}')->order('id DESC')->where('module = :module', [':module' => $module])->queryAll();
        if ($data !== [] || strpos($class, '_base') !== false && ($data[] = ['version' => $class, 'apply_time' => 0])) {
            foreach ($data as $migration) {
                if ($migration['apply_time'] == 0) {
                    try {
                        echo Yii::t('YupeModule.yupe', 'Downgrade {migration} for {module}.', ['{module}' => $module, '{migration}' => $migration['version']]) . '<br />';
                        Yii::log(Yii::t('YupeModule.yupe', 'Downgrade {migration} for {module}.', ['{module}' => $module, '{migration}' => $migration['version']]));
                        if ($this->migrateDown($module, $migration['version']) !== false) {
                            $db->createCommand()->delete($db->tablePrefix . $this->migrationTable, [$db->quoteColumnName('version') . "=" . $db->quoteValue($migration['version']), $db->quoteColumnName('module') . "=" . $db->quoteValue($module)]);
                        } else {
                            Yii::log(Yii::t('YupeModule.yupe', 'Can\'t downgrade migrations {migration} for {module}.', ['{module}' => $module, '{migration}' => $migration['version']]));
                            echo Yii::t('YupeModule.yupe', 'Can\'t downgrade migrations {migration} for {module}.', ['{module}' => $module, '{migration}' => $migration['version']]) . '<br />';
                            return false;
                        }
                    } catch (ErrorException $e) {
                        Yii::log(Yii::t('YupeModule.yupe', 'There is an error: {error}', ['{error}' => $e]));
                        echo Yii::t('YupeModule.yupe', 'There is an error: {error}', ['{error}' => $e]);
                    }
                }
            }
        } else {
            Yii::log(Yii::t('YupeModule.yupe', 'No need to downgrade migrations for {module}', ['{module}' => $module]));
            echo Yii::t('YupeModule.yupe', 'No need to downgrade migrations for {module}', ['{module}' => $module]) . '<br />';
        }
        return true;
    }