Сбой отката базы данных Magento 2 не удается добавить ограничения внешнего ключа


Я недавно обновился с magento v.2.1.7 до 2.1.9, а затем попытался обновить сразу после этого до 2.2.1. Это не удалось, и когда я пытаюсь выполнить откат (резервная копия, созданная до обновления с 2.1.7), это также не удается, поэтому я застрял между рабочими версиями. Ошибка, которую я получаю при попытке отката базы данных, заключается в следующем:

SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint, query was: CREATE TABLE `customer_group` (
  `customer_group_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Customer Group Id',
  `customer_group_code` varchar(32) NOT NULL COMMENT 'Customer Group Code',
  `tax_class_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Tax Class Id',
  PRIMARY KEY (`customer_group_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='Customer Group';
Author: Teja Bhagavan Kollepara, 2017-11-21

1 answers

Начиная с версии 2.2.0 поле customer_group_id имеет тип INT(10):

CREATE TABLE `customer_group` (
 `customer_group_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `customer_group_code` varchar(32) NOT NULL COMMENT 'Customer Group Code',
 `tax_class_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Tax Class Id',
 PRIMARY KEY (`customer_group_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='Customer Group'

Вы можете обновить эту таблицу вручную или проверить, почему во время обновления используется старый тип.

Это актуально для всех таблиц, где поле customer_group_id используется в качестве внешнего ключа: его длину следует изменить на 10.

 4
Author: Siarhey Uchukhlebau, 2017-11-21 07:46:09