【问题标题】:Symfony2 + Doctrine: Create Entities from specific database that is not the defaultSymfony2 + Doctrine:从不是默认的特定数据库创建实体
【发布时间】:2012-10-07 19:15:24
【问题描述】:

Symfony2 Cookbook 提供了有关如何从现有模式创建实体的信息,但我无法找到从另一个名为“legacy”的数据库(请参阅下面的 config.yml)导入的方法,这不是默认。

运行以下命令仅从默认数据库创建 YAML 文件

$ php app/console doctrine:mapping:convert yml ./src/Soapbox/DashboardBundle/Resources/config/doctrine/metadata/orm --from-database --force

如果我不提供任何论据,我会收到建议,但不确定哪些是适用的。

doctrine:mapping:convert [--filter="..."] [--force] [--from-database] [--extend[="..."]] [--num-spaces[="..."]] [--namespace[="..."]] [--em[="..."]] to-type dest-path

app/config/config.yml

# Doctrine Configuration
doctrine:
    dbal:
        default_connection:   default
        connections:
            default:
                driver:   %database_driver%
                host:     %database_host%
                port:     %database_port%
                dbname:   %database_name%
                user:     %database_user%
                password: %database_password%
                charset:  UTF8
            legacy:
                driver:   pdo_mysql
                host:     my.host
                port:     null
                dbname:   magazines
                user:     soapbox
                password: XXXXX
                charset:  UTF8

【问题讨论】:

    标签: symfony doctrine-orm entity symfony-2.1


    【解决方案1】:

    如果我想清楚我可能不是,你有两个 EntityManager,默认和旧。

    因此,您可以使用标志 --em "legacy" 使其从该特定数据库导入。

    【讨论】:

    • 我投了赞成票,因为你在这里有一些东西,但不幸的是我得到了[InvalidArgumentException] Doctrine ORM Manager named "legacy" does not exist.。我也尝试将 legacy_connection 作为名称,但这也不起作用。
    • 我在Cookbook 中找到了更多信息。我缺少第二个实体管理器的配置以使用第二个连接,然后将每个 Bundle 映射到其实体管理器。您的解决方案在此之后有效。谢谢
    猜你喜欢
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 2015-09-11
    相关资源
    最近更新 更多