【问题标题】: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,但我猜测这也适用于更高版本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-14
        • 2022-11-30
        • 2018-10-26
        • 2018-05-21
        • 2016-03-26
        相关资源
        最近更新 更多