Задать вопрос
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.

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

Почему же на исходном работает, куда копать?
  • Вопрос задан
  • 107 просмотров
Подписаться 1 Простой 11 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    Инженер по тестированию
    8 месяцев
    Далее
  • Skillbox
    Профессия Графический дизайнер PRO
    15 месяцев
    Далее
  • ProductStar
    Профессия Product Manager
    10 месяцев
    Далее
Решения вопроса 1
SamDark
@SamDark
Yii2 core team
Это режим `sql_mode` выставлен в `strict_all_tables` или более жёсткий. До этого, судя по всему, был менее жёстким.

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

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

Похожие вопросы
Principal Recruitment Москва
от 200 000 до 250 000 ₽
Principal Recruitment Москва
от 200 000 до 350 000 ₽
Principal Recruitment Москва
от 200 000 до 350 000 ₽