【问题标题】:How to update Symfony Entities from an existing database?如何从现有数据库更新 Symfony 实体?
【发布时间】:2017-08-26 09:13:02
【问题描述】:
我在 Symfony 文档 that 中发现您可以从现有数据库生成实体,那么有什么方法可以从我使用 MySQL 添加的现有数据库中更新实体?
例如,我在我的 FOSUSERBUNDLE 数据库中添加了一个名为“batman”的新列
在 MySQL 上使用这个命令:
ALTER TABLE cs_symfony_members
ADD batman int(11) NOT NULL;
如何更新我使用上述文档指南生成的实体?
【问题讨论】:
标签:
php
mysql
entity-framework
symfony
fosuserbundle
【解决方案1】:
如果需要将数据库模式更新为实体,可以使用两个命令:
(1) 从数据库创建实体映射:
bin/console doctrine:mapping:import BundleName --filter=EntityName
(2) 更新您的实体以匹配此映射:
bin/console doctrine:generate:entities BundleName:EntityName
例如,我在数据库中有一个用户表,该表的结构已更改。现在,我想将这些更改更新到 AppBundle 中的用户实体。我需要运行以下命令:
bin/console doctrine:mapping:import AppBundle --filter=User
bin/console doctrine:generate:entities AppBundle:User
希望对你有帮助!
【解决方案2】:
对于像我这样忘记后找不到此命令的人来说,这里是:
当我从我已经存在的 sql 数据库中更新我的实体时,我只是使用这个命令:
php bin/console doctrine:mapping:import --force AppBundle annotation --filter="Entity name".
我正在使用 symfony 3.4,但我猜测这也适用于更高版本。