根据数据库类型和操作系统不同,测试可能会给出一些“假阴性”的结果,这意味着你的数据库已经没问题了,但Doctrine并没有完全理解。在我参与的几个项目中都遇到过这种情况,无论使用Symfony哪个版本(也就是Symfony 2、3和4)。
此外,在Symfony 4中,你可以使用迁移,如文档中所述:the docs:
bin/console make:migration
这个命令会在 src/Migrations
中创建一个迁移文件,但不会触及数据库。
为了理解发生了什么(从Doctrine的角度来看),您可以查看迁移文件:它是一个具有两个方法(up()
和 down()
)的PHP类。
up()
方法将包含对齐数据库与映射文件所需的查询。
要应用所有待处理的迁移,请运行:
bin/console doctrine:migrations:migrate
php bin/console doctrine:schema:update --dump-sql
命令。你可能会有一些可空的布尔列,在使用 MariaDb 时,Doctrine 存在一个“bug”。 - Mcskyconfig/packages/doctrine.yaml
文件中指定了正确的服务器版本,应该类似于server_version: 'mariadb-10.2.12'
。 - Yoann Kergall