Всем привет.
Достался на поддержку самописный проект на Yii.
Возник вопрос по смену типа поля.
Есть поле с названием 'video_url'. По умолчанию оно имеет ограничение длины 255 символов.
Нам надо снять ограничение 255 символов, но сделать это не получается
Поле создано в файле с именем m******_******_create_additionals_product_tables.php
public function safeUp() {
/*тут идет код другого поля*/
$this->createTable('{{%product_video}}', [
'id' => $this->primaryKey(),
'product_id' => $this->integer()->notNull(),
'video_url' => $this->string(),
'sort_order' => $this->integer(),
]);
$this->addForeignKey('fk_product_video_attachment', '{{%product_video}}', 'product_id', '{{%product}}', 'id', 'cascade', 'cascade');
/*тут также идет код другого поля*/
}
Попытки смены типа поля в строке 'video_url' => $this->string() на text и ли varchar, ни к чему не привели.
Валидация поля проходит через следующую функцию:
public function rules()
{
return [
[['product_id'], 'required'],
[['product_id', 'sort_order'], 'integer'],
[['video_url'], 'string', 'max' => 255],
[['product_id'], 'exist', 'skipOnError' => true, 'targetClass' => Product::className(), 'targetAttribute' => ['product_id' => 'id']],
];
}
Внесение правок в эту функцию также ни к чему не приводит. Менял и тип поля, менял и убирал ограничение по размеру - не помогает.
В базе данных тип поля прописан таким образом:
CREATE TABLE `site_product_video` (
`id` int(11) NOT NULL,
`product_id` int(11) NOT NULL,
`video_url` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`sort_order` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Сайт расположен на хостинге. Подскажите, как все-таки поменять поле? Нужно ли произвести новую миграцию? Заранее спасибо за любую помощь.