Задать вопрос
Randel
@Randel
Developer

Перенё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.

В принципе, копия рабоатет как надо, требуемые поля не приходят с морды, нет их предустановленных значений, поэтому и сваливается.
Но!
Пару лет точно на исходном серваке всё работает, такой ошибки не наблюдается.

Почему же на исходном работает, куда копать?
  • Вопрос задан
  • 120 просмотров
Подписаться 1 Простой 11 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    1C-программист: расширенный курс
    18 месяцев
    Далее
  • Академия Eduson
    Python-разработчик
    9 месяцев
    Далее
  • Skillbox
    Профессия Графический дизайнер PRO
    12 месяцев
    Далее
Решения вопроса 1
SamDark
@SamDark
Yii2 core team
Это режим `sql_mode` выставлен в `strict_all_tables` или более жёсткий. До этого, судя по всему, был менее жёстким.

https://dev.mysql.com/doc/refman/5.7/en/insert.html
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы