更新Symfony 4中的实体?

Tao*_*Ben 1 php entity symfony symfony4

我的问题很简单,但是我找不到很好的答案,我有一个由命令行创建的实体:

php bin /控制台make:entity

此实体是属性很少的用户(名称-电子邮件-密码)

插入字段后,我进行了迁移,因此已经使用以下命令行在数据库中创建了我的表:

php bin /控制台make:migration

PHP的斌/控制台学说:迁移:迁移

但是现在我只想将名称更改为用户名,但我不知道该怎么做。

我没有在文档中找到任何内容,因此任何帮助将不胜感激。

小智 6

请注意:对实体进行任何更改后,必须生成新的迁移文件。实际上,此文件包含必须在数据库上进行的所有更改才能进行更新。要生成此文件(新的迁移版本),可以遵循以下命令:

$ bin/console doctrine:cache:clear-metadata
$ bin/console doctrine:migrations:diff
Run Code Online (Sandbox Code Playgroud)

在执行上述命令后,您已经成功生成了新版本文件,现在,如果您运行以下命令,则可以看到您有一个新的未执行版本文件:

$ bin/console doctrine:migrations:status
Run Code Online (Sandbox Code Playgroud)

最后,要执行新版本文件并更新数据库,您必须运行以下命令:

$ bin/console doctrine:migrations:migrate --all-or-nothing
Run Code Online (Sandbox Code Playgroud)

现在您的数据库已更新,并且在表中migration_versions您可以看到已添加了新版本。

成功的。


dbr*_*ann 5

您可以遵循类似的模式:

  1. User-entity 中的字段(注释)从 name 更改为 username
  2. bin/console doctrine:migrations:diff
  3. bin/console doctrine:migrations:migrate

doctrine:migrations:diff命令应检测到该字段已更改并为您创建相应的 SQL 查询,然后将其存储在原始文件旁边的 DoctrineMigrations 文件中。

doctrine:migrations:migrate检测到这个新的迁移和以前没有执行,通过对检查doctrine_versions表,其中已执行的所有迁移版本存储。

另见:https : //www.doctrine-project.org/projects/doctrine-migrations/en/2.1/reference/generating-migrations.html#diffing-using-the-orm