При редактировании БД столкнулся с ошибкой:
#1067 — Некорректное значение по умолчанию для ‘post_date’
#1067 — Invalid default value
дефолтное значение стояло
0000-00-00 00:00:00
база выдает ошибку т.к. данная дата не валидна потому, что она не находится в допустимом диапазоне
1970-01-01 00:00:01 — 2038-01-19 03:14:07
Но даже при запросе смены дефолтного значения на NULL:
ALTER TABLE `wp_comments` CHANGE `comment_date` `comment_date` DATETIME NULL DEFAULT NULL;
база выдавала ошибку т.к. были другие столбцы в таблице с неверным значением.
Решение
Пришлось править конфиг mySQL, чтобы разрешить работу с некорректным значением по-умолчанию:
[mysqld]
sql-mode=NO_ENGINE_SUBSTITUTION
перезапустить БД, после этого поменять значения на NULL или валидные, затем вернуть конфиг обратно.
Альтернативное решение
Операция может быть заблокирована из за неверных значений в других столбцах таблицы. Для этого нужно поправить дефолтные значения во всех столбцах. Сделать это можно с помощью транзакционного запроса по всем столбцам. ALGORITHM=INPLACE, LOCK=NONE
Например:
ALTER TABLE `wp_posts` CHANGE `post_date` `post_date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `post_date_gmt` `post_date_gmt` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `post_modified` `post_modified` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, CHANGE `post_modified_gmt` `post_modified_gmt` DATETIME NULL DEFAULT CURRENT_TIMESTAMP, ALGORITHM=INPLACE, LOCK=NONE;
Так же возможно потребуется изменить уже проставленные значения с 0000-00-00 00:00:00 на корректные.