Тип JSON MariaDB 10.0 с Symfony 4

На моем сервере Linux у меня есть MariaDB версии 10.0, которая не поддерживает тип json (поддерживается до версии 10.2), и я не могу ее обновить, потому что она не выпущена в официальном репозитории Ubuntu.

Когда я запускаю команду doctrine:migration:migrate для создания таблиц, я получаю синтаксическую ошибку от MariaDB для типа json.

MariaDB: 10.0.34 - PHP: 7.1 - Symfony: 4.0.6

Как решить эту проблему?


person A.Seddighi    schedule 27.03.2018    source источник
comment
Этот проект работал в моей локальной сети с версией MariaDB 10.2.8.   -  person A.Seddighi    schedule 27.03.2018


Ответы (2)


Проблема в том, что Doctrine ожидает MariaDB 10.2+, но были проблемы с добавлением последних версий MariaDB в репозитории (Arch все еще находится на версии 10.1).

Решение находится здесь: https://symfony.com/doc/current/reference/configuration/doctrine.html#doctrine-dbal-configuration

Просто настройте server_version в config/packages/doctrine.yml на:

doctrine:
dbal:
    # configure these for your database server
    driver: 'pdo_mysql'
    server_version: 'mariadb-10.1.34'
    ...

Просто замените версию номером своей версии, который вы можете получить с помощью

$ mysql --version
person Putr    schedule 13.07.2018
comment
Простое примечание, изменяющее Doctrine с этим изменением, может вызвать проблемы с продвинутыми вещами, поскольку может ожидаться, что в движке будут присутствовать вещи, которых нет. - person Barkermn01; 01.03.2019
comment
@MartinBarker, насколько я понимаю, это изменение предотвращает именно это. Сообщая доктрине правильный номер версии базы данных (ошибка возникает из-за того, что доктрина предполагает, что у вас более новая версия), вы избегаете проблем, в которых доктрина ожидает присутствия вещей. - person Putr; 21.03.2019
comment
+1, потому что этот ответ копается в реальной проблеме. С обновлением версии базы данных все в порядке, но рано или поздно у вас снова возникнут проблемы, если вы не измените конфигурацию Doctrine соответствующим образом. - person Clon; 17.05.2019

Небольшое примечание: не забудьте удалить предыдущие миграции, которые вы создали со старой версией server_version.

Все содержится в каталоге /migrations вашего проекта.

person Spaceknight    schedule 16.03.2021