当我发出以下命令时:
php bin/console doctrine:schema:update --force
数据库得到更新,但之后这个命令:
php bin/console doctrine:schema:validate
一直说数据库不同步(见下面的截图)。
我错过了什么/做错了什么?
答案 0 :(得分:2)
根据数据库类型和操作系统的不同,测试可能会给出一些错误的错误",这意味着您的数据库已经可以,但是Doctrine并不是很了解。它发生在我的几个项目中,无论Symfony版本(这意味着Symfony 2,3和4)。
此外,在Symfony 4中,您可以按照the docs中的说明使用迁移,即:
bin/console make:migration
此命令将在src/Migrations
内创建一个迁移文件,但不会触及数据库。
要了解正在发生的事情(来自Doctrine的观点),您可以查看迁移文件:它是一个带有两种方法的PHP类(up()
和down()
)。
up()
方法将包含将数据库与映射文件对齐所需的查询/查询。
要应用所有待处理的迁移,请运行:
bin/console doctrine:migrations:migrate