如何在 Symfony 4 中更新数据库?
How to update the database in Symfony 4?
当我给出以下命令时:
php bin/console doctrine:schema:update --force
数据库得到更新,但之后这个命令:
php bin/console doctrine:schema:validate
一直说数据库不同步(见下面的截图)。
我missing/doing哪里错了?
根据数据库类型和OS,测试可能会给出一些"false negatives",这意味着你的数据库已经可以了,但Doctrine不太明白。它发生在我的几个项目中,无论 Symfony 版本如何(这意味着 Symfony 2,3 和 4)。
此外,在 Symfony 4 中,您可以按照 the docs 中的说明使用迁移,即:
bin/console make:migration
此命令将在 src/Migrations
中创建一个迁移文件,但不会触及数据库。
要了解发生了什么(从 Doctrine 的角度来看),您可以查看迁移文件:它是一个 PHP class,有两种方法(up()
和 down()
).
up()
方法将包含使数据库与您的映射文件保持一致所需的 query/queries。
要应用所有待处理的迁移,运行:
bin/console doctrine:migrations:migrate
当我给出以下命令时:
php bin/console doctrine:schema:update --force
数据库得到更新,但之后这个命令:
php bin/console doctrine:schema:validate
一直说数据库不同步(见下面的截图)。
我missing/doing哪里错了?
根据数据库类型和OS,测试可能会给出一些"false negatives",这意味着你的数据库已经可以了,但Doctrine不太明白。它发生在我的几个项目中,无论 Symfony 版本如何(这意味着 Symfony 2,3 和 4)。
此外,在 Symfony 4 中,您可以按照 the docs 中的说明使用迁移,即:
bin/console make:migration
此命令将在 src/Migrations
中创建一个迁移文件,但不会触及数据库。
要了解发生了什么(从 Doctrine 的角度来看),您可以查看迁移文件:它是一个 PHP class,有两种方法(up()
和 down()
).
up()
方法将包含使数据库与您的映射文件保持一致所需的 query/queries。
要应用所有待处理的迁移,运行:
bin/console doctrine:migrations:migrate