OroCommerce 4.1.2 UTF8MB4 Ошибка установки "1071 Указанный ключ слишком длинный; максимальная длина ключа составляет 3072 байта" - PullRequest
1 голос
/ 13 апреля 2020

Fre sh pull из последнего пакета 4.1.2 и когда config.yml настроен для использования с utf8mb4 - @Michael Bessolov

doctrine:
    dbal:
        charset: utf8mb4
        default_table_options:
            charset: utf8mb4
            collate: utf8mb4_unicode_ci

Во время процедуры установки базы данных / процесса миграции я получаю следующие ошибки. Тем не менее, при установке без вышеуказанных изменений config.yml, установка проходит успешно. Я использовал utf8mb4 с 4.1.0 и 4.1.1, а также всю ветку 3.1 с текущей настройкой отлично. Кажется, только что представленный в недавней редакции.

Исходное сообщение об ошибке находится на MariaDB 10.4.12, а второе - после проверки на MySQL 5.7.29 после упоминания Андреем о форматировании сообщения об ошибке.

MariaDB 10.4.12-

  > Oro\Bundle\DataAuditBundle\Migrations\Schema\OroDataAuditBundleInstaller
    ERROR: An exception occurred while executing 'CREATE TABLE oro_audit (id INT AUTO_INCREMENT NOT NULL, user_id INT DEFAULT NULL, organization_id INT DEFAULT NULL, impersonation_id INT DEFAULT NULL, action VARCHAR(8) DEFAULT NULL, logged_at DATETIME DEFAULT NULL COMMENT '(DC2Type:datetime)', object_id VARCHAR(255) DEFAULT NULL, object_class VARCHAR(255) NOT NULL, object_name VARCHAR(255) DEFAULT NULL, version INT DEFAULT NULL, type VARCHAR(255) NOT NULL, transaction_id VARCHAR(255) NOT NULL, owner_description VARCHAR(255) DEFAULT NULL, additional_fields LONGTEXT DEFAULT NULL COMMENT '(DC2Type:array)', INDEX IDX_5FBA427CA76ED395 (user_id), INDEX idx_oro_audit_type (type), UNIQUE INDEX idx_oro_audit_version (object_id, object_class, version, type), UNIQUE INDEX idx_oro_audit_transaction (object_id, object_class, transaction_id, type), INDEX idx_oro_audit_logged_at (logged_at), INDEX idx_oro_audit_object_class (object_class), INDEX idx_oro_audit_obj_by_type (object_id, object_class, type), INDEX idx_oro_audit_owner_descr (owner_description), INDEX idx_oro_audit_organization_id (organization_id), INDEX IDX_5FBA427C26F87DB8 (impersonation_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB':

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 3072 bytes

@ Андрей Яценко

MySQL 5.7.29 - редактировать: отсутствует перевод sh перевод, теперь отображается та же ошибка

  > Oro\Bundle\DataAuditBundle\Migrations\Schema\OroDataAuditBundleInstaller
    ERROR: An exception occurred while executing 'CREATE TABLE oro_audit (id INT AUTO_INCREMENT NOT NULL, user_id INT DEFAULT NULL, organization_id INT DEFAULT NULL, impersonation_id INT DEFAULT NULL, action VARCHAR(8) DEFAULT NULL, logged_at DATETIME DEFAULT NULL COMMENT '(DC2Type:datetime)', object_id VARCHAR(255) DEFAULT NULL, object_class VARCHAR(255) NOT NULL, object_name VARCHAR(255) DEFAULT NULL, version INT DEFAULT NULL, type VARCHAR(255) NOT NULL, transaction_id VARCHAR(255) NOT NULL, owner_description VARCHAR(255) DEFAULT NULL, additional_fields LONGTEXT DEFAULT NULL COMMENT '(DC2Type:array)', INDEX IDX_5FBA427CA76ED395 (user_id), INDEX idx_oro_audit_type (type), UNIQUE INDEX idx_oro_audit_version (object_id, object_class, version, type), UNIQUE INDEX idx_oro_audit_transaction (object_id, object_class, transaction_id, type), INDEX idx_oro_audit_logged_at (logged_at), INDEX idx_oro_audit_object_class (object_class), INDEX idx_oro_audit_obj_by_type (object_id, object_class, type), INDEX idx_oro_audit_owner_descr (owner_description), INDEX idx_oro_audit_organization_id (organization_id), INDEX IDX_5FBA427C26F87DB8 (impersonation_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB':

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 3072 bytes

Ответы [ 2 ]

1 голос
/ 15 апреля 2020

Внутренний билет Oro # BAP-18992 выдан для исправления. Спасибо команде Оро!

0 голосов
/ 14 апреля 2020

Убедитесь, что ваша среда соответствует всем требованиям системы OroCommerce . Единственная поддерживаемая версия MySQL на данный момент - 5.7.

Но согласно сообщению об ошибке вы используете более старую версию. Если это так, пожалуйста, обновите MySQL до 5.7. Более ранние версии MySQL официально не поддерживаются и не тестируются перед выпуском. Это было совпадение, если приложение работало с ним.

...