如何从现有数据库更新 Symfony 实体?

How to update Symfony Entities from an existing database?

我在 Symfony 文档中发现 that 您可以从现有数据库生成实体 那么有什么方法可以从我使用 MySQL 添加的现有数据库更新实体吗?

例如,我在我的 FOSUSERBUNDLE 数据库中添加了名为“batman”的新列

在 MySQL 上使用此命令:

ALTER TABLE cs_symfony_members
ADD batman int(11) NOT NULL;

如何更新我使用上面的文档指南生成的实体?

如果需要将数据库模式更新为实体,可以使用两个命令:

(1) 从数据库创建实体映射:

bin/console doctrine:mapping:import BundleName --filter=EntityName

(2) 更新您的实体以匹配此映射:

bin/console doctrine:generate:entities BundleName:EntityName

例如,我在数据库中有一个用户 table,该 table 的结构已更改。现在,我想将这些更改更新到我在 AppBundle 中的用户实体。我需要 运行 以下命令:

bin/console doctrine:mapping:import AppBundle --filter=User
bin/console doctrine:generate:entities AppBundle:User

希望对您有所帮助!

对于像我一样忘记了这个命令后找不到这个命令的人来说,这里是:

当我从我现有的 sql 数据库更新我的实体时,我只使用这个命令:

php bin/console doctrine:mapping:import --force AppBundle annotation --filter="Entity name".

我正在使用 symfony 3.4,但我猜这也适用于更高版本。