Изменить длину строки по умолчанию в доктрине / symfony - PullRequest
0 голосов
/ 23 февраля 2019

Каждый раз, когда я создаю новый Entity с атрибутами в качестве типа string, всякий раз, когда я хочу обновить свою базу данных, я получаю сообщение об ошибке:

SQLSTATE [42000]: синтаксическая ошибка илинарушение прав доступа: 1071 Указанный ключ слишком длинный;максимальная длина ключа составляет 767 байт

Сейчас с этим сталкиваются многие люди, и причины описаны здесь .Я понимаю, в чем заключается моя проблема, и могу решить ее, передав свойство @ORM\Column(type="string", length=191).

Я должен установить длину 191 для каждого string type в моей схеме.Есть ли какой-нибудь способ, хотя я могу установить длину по умолчанию для строки в 191 (конфигурационный файл), чтобы мне не приходилось менять это каждый раз?

Я не хочу переходить на utf8 .

1 Ответ

0 голосов
/ 24 февраля 2019

В Symfony вы не можете изменить длину по умолчанию для строк.Вы должны установить в качестве значения по умолчанию в вашей конфигурации Mysql.

Но я бы предложил всегда указывать желаемую длину, когда вы пишете свои сущности

/**
 * @ORM\Column(type="string", length=512)
 */
private $name;
...