Перенёc PHP проект в DOCKER из бэкапов (NGINX+PHP+MySQL). Конфиги так же скопировал, пакеты такие же. Поведение при вставке записей изменилось. WHY?
PHP 7.1, Yii1.1 MariaDB 10
В целевой таблице есть ограничения not null для некоторых полей.
На исходном сервере операция добавления записи из web-формы работает.
На созданной копии сваливается:
CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[HY000]: General error: 1364 Field 'data_field' doesn't have a default value.
DDL таблицы показываает несколько полей с not null и отсутствем default.
В принципе, копия рабоатет как надо, требуемые поля не приходят с морды, нет их предустановленных значений, поэтому и сваливается.
Но!
Пару лет точно на исходном серваке всё работает, такой ошибки не наблюдается.
Очевидно что при переносе потерялось дефолтное значение на поле, такое бывает при переносе, если есть бэкапы системы стоит проверить это на исторических данных, но 90% что просто похерилось при дампе/заливке.
Проще всего изменить таблицу руками, добавив соответствующий атрибут.
сергей кузьмин, ThunderCat, Я понимаю, что надо модифицировать или табличку или морду.
Проект на сопровождении недавно, я прикидываю какие ещё сюрпризы можно ожидать.
Дмитрий, Тут прошу пояснить/уточнить. Запись действительно создаётся, без ругани.
На проблемных полях пустые строки.