/**
  * Migration Up
  * @return bool
  * @throws \yii\db\Exception
  */
 public function safeUp()
 {
     foreach ($this->_rows as $row) {
         $model = new Setting();
         $model->setAttributes(['section' => $row['section'], 'key' => $row['key']]);
         $model->name = isset($row['name']) ? $row['name'] : $row['key'];
         $model->hint = isset($row['hint']) ? $row['hint'] : null;
         $model->value = isset($row['value']) ? (string) $row['value'] : '';
         $model->position = isset($row['position']) ? $row['position'] : null;
         $model->type_key = isset($row['type_key']) ? $row['type_key'] : $model::TYPE_TEXT;
         $model->variants = isset($row['variants']) ? $row['variants'] : ['safe'];
         $model->rules = isset($row['rules']) ? $row['rules'] : ['safe'];
         if ($model->validate()) {
             $tableName = $model::tableName();
             $query = (new Query())->select('*')->from($tableName)->where(['section' => $model->section, 'position' => $model->position]);
             if ($query->count()) {
                 $command = $this->db->createCommand()->update($tableName, ['position' => new Expression('position+1')], 'position >= :position AND section = :section', ['position' => $model->position, 'section' => $model->section]);
                 if (!$command->execute()) {
                     echo "Saving error\n";
                     return false;
                 }
             }
             if (!$model->save()) {
                 $error = ['Save Error!!'];
                 $error['attributes'] = $model->getAttributes();
                 $error['errors'] = $model->errors;
                 print_r($error);
                 return false;
             }
         }
     }
     return true;
 }