Setting unknown property при миграции

Уже исправленные репорты или принятые предложения
Ответить
De-Luxis
Сообщения: 19
Зарегистрирован: 2014.06.19, 11:16

Setting unknown property при миграции

Сообщение De-Luxis » 2017.08.29, 08:49

Написал вот такую простенькую миграцию:

Код: Выделить всё

use yii\db\Migration;
use \app\models\user\UserFields;
/**
 * Class m170829_050952_add_require_field_for_user_fields
 */
class m170829_050952_add_require_field_for_user_fields extends Migration
{
    /**
     * @inheritdoc
     */
    public function safeUp()
    {
        $this->addColumn(UserFields::tableName(), 'required', $this->boolean());

        foreach (UserFields::find()->all() as $field){
            /**
             * @var UserFields $field
             */

            $field->required = !($field->type ==  UserFields::TYPE_CHECKBOX || $field->type == UserFields::TYPE_SELECT || in_array($field->key, ['city', 'phone']));
            $field->save();
        }
    }

    /**
     * @inheritdoc
     */
    public function safeDown()
    {
        $this->dropColumn(UserFields::tableName(), 'required');
    }
}
Выдал ошибку:

Код: Выделить всё

Yii Migration Tool (based on Yii v2.0.13-dev)

Total 1 new migration to be applied:
	m170829_050952_add_require_field_for_user_fields

Apply the above migration? (yes|no) [no]:yes
*** applying m170829_050952_add_require_field_for_user_fields
    > add column required boolean to table {{%user_fields}} ... done (time: 0.002s)
Exception: Setting unknown property: app\models\user\UserFields::required (/var/www/web/sites/qwe/vendor/yiisoft/yii2/base/Component.php:203)
#0 /var/www/web/sites/qwe/vendor/yiisoft/yii2/db/BaseActiveRecord.php(307): yii\base\Component->__set('required', true)
#1 /var/www/web/sites/qwe/app/migrations/m170829_050952_add_require_field_for_user_fields.php(22): yii\db\BaseActiveRecord->__set('required', true)
#2 /var/www/web/sites/qwe/vendor/yiisoft/yii2/db/Migration.php(107): m170829_050952_add_require_field_for_user_fields->safeUp()
#3 /var/www/web/sites/qwe/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(705): yii\db\Migration->up()
#4 /var/www/web/sites/qwe/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(185): yii\console\controllers\BaseMigrateController->migrateUp('m170829_050952_...')
#5 [internal function]: yii\console\controllers\BaseMigrateController->actionUp(0)
#6 /var/www/web/sites/qwe/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
#7 /var/www/web/sites/qwe/vendor/yiisoft/yii2/base/Controller.php(157): yii\base\InlineAction->runWithParams(Array)
#8 /var/www/web/sites/qwe/vendor/yiisoft/yii2/console/Controller.php(135): yii\base\Controller->runAction('', Array)
#9 /var/www/web/sites/qwe/vendor/yiisoft/yii2/base/Module.php(528): yii\console\Controller->runAction('', Array)
#10 /var/www/web/sites/qwe/vendor/yiisoft/yii2/console/Application.php(180): yii\base\Module->runAction('migrate', Array)
#11 /var/www/web/sites/qwe/vendor/yiisoft/yii2/console/Application.php(147): yii\console\Application->runAction('migrate', Array)
#12 /var/www/web/sites/qwe/vendor/yiisoft/yii2/base/Application.php(386): yii\console\Application->handleRequest(Object(yii\console\Request))
#13 /var/www/web/sites/qwe/yii(29): yii\base\Application->run()
#14 {main}
*** failed to apply m170829_050952_add_require_field_for_user_fields (time: 0.016s)


0 from 1 migrations were applied.

Migration failed. The rest of the migrations are canceled.
На остальных машинах прошло все норм. error_reporting везде одинаковый.
Подскажите пожалуйста, куда копать?

Nex-Otaku
Сообщения: 310
Зарегистрирован: 2016.07.09, 21:07

Re: Setting unknown property при миграции

Сообщение Nex-Otaku » 2017.08.30, 07:22

Ну так может у тебя схема кешируется? Сбрось её после добавления колонки.

De-Luxis
Сообщения: 19
Зарегистрирован: 2014.06.19, 11:16

Re: Setting unknown property при миграции

Сообщение De-Luxis » 2017.08.30, 07:35

Nex-Otaku писал(а):
2017.08.30, 07:22
Ну так может у тебя схема кешируется? Сбрось её после добавления колонки.
Точно. Не подумал. Спасибо!

Ответить