更新 Symfony 4 中的实体?
Update an entity in Symfony 4?
我的问题很简单,但我找不到很好的答案,我有一个由命令行创建的实体:
php bin/console make:entity
此实体是具有少量属性(名称 - 电子邮件 - 密码)的用户
插入字段后,我进行了迁移,因此我的 table 已使用这些命令行在数据库中创建:
php bin/console make:migration
php bin/console doctrine:migration:migrate
但现在我只想将 name 更改为 username 但我不知道该怎么做。
我没有在文档中找到任何内容,因此非常感谢您的帮助。
您可以遵循类似的模式:
- 将您的
User
实体中的字段(注释)从名称更改为用户名
- 运行
bin/console doctrine:migrations:diff
- 运行
bin/console doctrine:migrations:migrate
doctrine:migrations:diff
命令应该检测到该字段已更改并为您创建相应的 SQL 查询,然后将其存储在原始文件旁边的 DoctrineMigrations 文件中。
doctrine:migrations:migrate
通过检查 doctrine_versions
table 来检测这个新的迁移,并且它以前没有执行过,其中存储了所有已执行的迁移版本。
注意: 在实体发生任何更改后,您必须生成新的迁移文件。事实上,此文件包含所有必须对要更新的数据库进行的更改。
要生成此文件(新迁移版本),您可以执行以下命令:
$ bin/console doctrine:cache:clear-metadata
$ bin/console doctrine:migrations:diff
在上面的命令之后你成功的生成了你的新版本文件,现在如果你运行下面的命令,你可以看到你有一个新的没有执行的版本文件:
$ bin/console doctrine:migrations:status
最后,要执行新版本文件并更新您的数据库,您必须运行以下命令:
$ bin/console doctrine:migrations:migrate --all-or-nothing
现在您的数据库已更新,在 table migration_versions
中您可以看到已添加新版本。
成功。
我的问题很简单,但我找不到很好的答案,我有一个由命令行创建的实体:
php bin/console make:entity
此实体是具有少量属性(名称 - 电子邮件 - 密码)的用户
插入字段后,我进行了迁移,因此我的 table 已使用这些命令行在数据库中创建:
php bin/console make:migration
php bin/console doctrine:migration:migrate
但现在我只想将 name 更改为 username 但我不知道该怎么做。
我没有在文档中找到任何内容,因此非常感谢您的帮助。
您可以遵循类似的模式:
- 将您的
User
实体中的字段(注释)从名称更改为用户名 - 运行
bin/console doctrine:migrations:diff
- 运行
bin/console doctrine:migrations:migrate
doctrine:migrations:diff
命令应该检测到该字段已更改并为您创建相应的 SQL 查询,然后将其存储在原始文件旁边的 DoctrineMigrations 文件中。
doctrine:migrations:migrate
通过检查 doctrine_versions
table 来检测这个新的迁移,并且它以前没有执行过,其中存储了所有已执行的迁移版本。
注意: 在实体发生任何更改后,您必须生成新的迁移文件。事实上,此文件包含所有必须对要更新的数据库进行的更改。 要生成此文件(新迁移版本),您可以执行以下命令:
$ bin/console doctrine:cache:clear-metadata
$ bin/console doctrine:migrations:diff
在上面的命令之后你成功的生成了你的新版本文件,现在如果你运行下面的命令,你可以看到你有一个新的没有执行的版本文件:
$ bin/console doctrine:migrations:status
最后,要执行新版本文件并更新您的数据库,您必须运行以下命令:
$ bin/console doctrine:migrations:migrate --all-or-nothing
现在您的数据库已更新,在 table migration_versions
中您可以看到已添加新版本。
成功。