Database 如何在Symfony 4中更新数据库?
当我发出以下命令时:Database 如何在Symfony 4中更新数据库?,database,symfony,symfony4,Database,Symfony,Symfony4,当我发出以下命令时: php bin/console原则:模式:更新--force 数据库会更新,但之后会执行以下命令: php bin/console原则:schema:validate 一直说数据库不同步(参见下面的屏幕截图) 我错过了什么/做错了什么 根据数据库类型和操作系统的不同,测试可能会给出一些“假阴性”,这意味着您的数据库已经正常了,但条令并不完全理解。这发生在我的几个项目中,不管Symfony版本(也就是symfony2、3和4) 此外,在Symfony 4中,您可以使用迁移,如
php bin/console原则:模式:更新--force
数据库会更新,但之后会执行以下命令:
php bin/console原则:schema:validate
一直说数据库不同步(参见下面的屏幕截图)
我错过了什么/做错了什么
根据数据库类型和操作系统的不同,测试可能会给出一些“假阴性”,这意味着您的数据库已经正常了,但条令并不完全理解。这发生在我的几个项目中,不管Symfony版本(也就是symfony2、3和4) 此外,在Symfony 4中,您可以使用迁移,如中所述,即:
bin/console make:migration
此命令将在src/Migrations
内创建迁移文件,但不会触及数据库
为了理解发生了什么(从Doctrine的角度来看),您可以看看迁移文件:它是一个PHP类,有两个方法(up()
和down()
)
up()
方法将包含将数据库与映射文件对齐所需的查询
要应用所有挂起的迁移,请运行:
bin/console doctrine:migrations:migrate
使用
php-bin/控制台原则:schema:update--dump-sql
。您可能有一些可为空的布尔列,当您使用MariaDb时,条令有一个“bug”。如果您使用MariaDb,请确保在config/packages/doctor.yaml
中有正确的服务器版本,它应该类似于server\u版本:'mariadb-10.2.12'
,这是正确的,但您应该提供更多的上下文,以便让OP了解此版本的优点