【问题标题】:doctrine schema update for 2 entity managers (different databases)2 个实体管理器(不同数据库)的学说架构更新
【发布时间】:2020-09-19 05:21:57
【问题描述】:

使用 Symfony 4.4,我在其中配置了 2 个实体管理器:[默认,迁移]。 “迁移”管理器连接到另一个 mysql 数据库,我可以从那里读取实体-tested-。

每当我尝试用

更新我的“默认”管理器架构时
php bin/console doctrine:schema:update --em="default"

我收到以下错误:

In SchemaException.php line 111:
                                                                
  The table with name 'myProject.document' already exists.  

发生这种情况是因为“默认”管理器和“迁移”管理器也具有“文档”实体,但位于 2 个不同的数据库中。

我只想更新“默认”管理器的架构,而忽略“迁移”(它存在于另一个数据库中,我从那里以只读方式使用)。

【问题讨论】:

  • 我可能会推荐适当的迁移(例如教义/迁移),您可以在其中实际编写代码并检查可能发生更改的数据库。
  • 谢谢,由于同样的问题,迁移引发错误,但同时我找到了解决方案 - 见底部

标签: symfony doctrine


【解决方案1】:

我发现深埋在里面;-)

/**
 * @ORM\Table(name="document", schema="otherDatabaseName")
 * @ORM\Entity(readOnly=true)
 */
class Document extends Base {

因此,在这种情况下,使用“文档”实体的“迁移”管理器必须通过您定义其他数据库名称的模式

schema:update 会在有或没有 -em 选项的情况下正常运行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-11
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多