【问题标题】:Doctrine connection with db与 db 的教义连接
【发布时间】:2015-04-28 08:24:24
【问题描述】:

我即将开始一个学说 symfony 的项目,但我必须与多个数据库建立连接。其中之一是无法使用 ORM 映射的现有数据库 (SQL SERVER)。是否有可能将此数据库与另一个未在学说中映射的数据库连接并正常与控制器一起使用?

【问题讨论】:

  • 可以建立多个数据库连接,配置即可。但是“将这个数据库与另一个在学说中映射的数据库连接”是什么意思?
  • 您只能配置 DBAL 层并通过连接使用它。我建议您尝试将实体映射到一个包中,如果您需要这方面的一些信息,请告诉我。
  • @Jean 未映射,已编辑问题。我有一个独立的数据库,我不希望它转换为 ORM,因为它有很多程序。怎么连接?
  • @Matteo 我如何为包含大量程序的数据库执行此操作?
  • 如果您有特定的存储过程需要调用,则需要通过连接 (DBAL)

标签: php sql-server symfony doctrine-orm doctrine


【解决方案1】:

我开发了一个多数据库的 sf2 应用,使用了学说 2 orm 映射。

我们使用intellectsoft-uk/MssqlBundle

我们的配置是:

config.yml

# Doctrine Configuration
doctrine:
    dbal:
        default_connection: acme_mysql
        connections:
            acme_mysql:
                host: %acme_mysql_database_host%
                port: %acme_mysql_database_port%
                dbname: %acme_mysql_database_name%
                user: %acme_mysql_database_user%
                password: %acme_mysql_database_password%
                charset:  UTF8
            acme_slqsrv:
                driver:         sqlsrv
                driver_class:   \Realestate\MssqlBundle\Driver\PDODblib\Driver
                host: %acme_slqsrv%
                port: %acme_slqsrv%
                dbname: %acme_slqsrv%
                user: %acme_slqsrv%
                password: %acme_slqsrv%
                charset:  UTF8
orm: #optional if you want to map some entity in doctrine2
    auto_generate_proxy_classes: %kernel.debug%
    default_entity_manager: acme_mysql
    entity_managers:
        em_mysql:
            connection: acme_mysql
            mappings:
                AcmeMysqlBundle: ~
        em_sqlsrv:
            connection: acme_sqlsrv
            mappings:
                AcmeSqlSrvBundle: ~

此配置允许您在控制器/服务中获取连接实例并将其用于访问数据库并执行存储过程等等......

希望有帮助

【讨论】:

    猜你喜欢
    • 2016-05-03
    • 2013-06-04
    • 2022-10-21
    • 2011-07-05
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    相关资源
    最近更新 更多