Только что выяснилось, что doctrine:schema:validate выдает ошибку:
[ERROR] The database schema is not in sync with the current mapping file.
Итак, я попытался использовать doctrine:schema:update --force --complete --dump-sql, который оказался успешным:
The following SQL statements will be executed:
ALTER TABLE user CHANGE last_login `last_login` DATETIME DEFAULT NULL;Updating database schema...
1 query was executed[OK] Database schema updated successfully!
Но если я снова запустил doctrine:schema:validate, он выдает ту же ошибку, касающуюся несинхронизации схемы.
Я проверил определение поля таблицы базы данных, и оно выглядит хорошо:
`last_login` datetime DEFAULT NULL
А вот как определяется столбец:
/**
* @ORM\Column(type = "datetime", nullable=true)
*/
private $last_login;
Я нашел это: https://github.com/doctrine/dbal/pull/2825
Любые идеи?
doctrine.dbal.server_version: '5.7'
Нет, я имею в виду версию установленного пакета (т.е. то, что отображается при запуске composer show).




Похоже, что у Doctrine есть проблемы с определением правильной версии MySQL API при попытке получить версию сервера из установки MariaDB.
Это может помочь определить номер версии MySQL в вашей конфигурации. Это помогло мне в нескольких проектах, например. при использовании MariaDB в Debian Stretch.
# app/config/config.yml
doctrine:
# …
dbal:
# …
server_version: 5.7
Это приведет к тому, что Doctrine пропустит автоматическое определение версии MySQL и будет использовать новейший API.
хотя он определен: doctrine.dbal.server_version: '5.7'
Не могли бы вы попробовать установить его на 5.6 (потом очистить кеш)?
Извините, нет, так как я перешел на MySQL
В вашем config.yml или doctrine.yaml (в зависимости от версии Symfony) установите правильную версию сервера вашей базы данных. Например.:
doctrine:
# …
dbal:
# …
server_version: mariadb-10.2.15
Обратите внимание на префикс mariadb.
Я изменил DATABASE_URL в своем .env.local, и это сработало. Раньше (не работало)
DATABASE_URL=mysql://root:[email protected]:3306/db?serverVersion=10.4.12
После (наконец-то сработал)
DATABASE_URL=mysql://root:[email protected]:3306/db?serverVersion=mariadb-10.4.12
Какую версию
doctrine/dbalвы используете?