【问题标题】:Multiple databases support in SymfonySymfony 中的多个数据库支持
【发布时间】:2009-04-09 07:42:37
【问题描述】:

我在我的 Symfony 项目中使用 Propel 作为我的 DAL。我似乎无法让我的应用程序跨两个或多个数据库工作。

这是我的 schema.yml:

db1:
  lkp_User:
    pk_User:                     { type: integer, required: true, primaryKey: true, autoIncrement: true }
    UserName:                    { type: varchar(45), required: true }
    Password:                    longvarchar
    _uniques:
      Unique:                    [ UserName ]

db2:
  tesco:
    Id:                  { type: integer, required: true, primaryKey: true, autoIncrement: true }
    Name:                { type: varchar(45), required: true }
    Description:         longvarchar

这里是 databases.yml:

dev:
  db1:
    param:
      classname: DebugPDO
test:
  db1:
    param:
      classname: DebugPDO
all:
  db1:
    class: sfPropelDatabase
    param:
      classname: PropelPDO
      dsn: 'mysql:dbname=bpodb;host=localhost'   #where the db is located
      username: root
      password: #pass
      encoding: utf8
      persistent: true
      pooling: true


  db2:
    class: sfPropelDatabase
    param:
      classname: PropelPDO
      dsn: 'mysql:dbname=mystore2;host=localhost'   #where the db is located
      username: root
      password: #pass
      encoding: utf8
      persistent: true
      pooling: true

当我调用php symfony propel-build-model 时,只会生成db1,不会生成db2。

知道如何解决这个问题吗?

【问题讨论】:

    标签: symfony1


    【解决方案1】:

    I got this issue working!最重要的是您必须根据 %dbname%.schema.yml 命名您的架构。通过这种方式,Symfony 将能够将 ymls 分配给正确的数据库。

    【讨论】:

    • 这很糟糕。感谢您的提示!
    【解决方案2】:

    此外,在运行任务时,您应该指定连接,例如:

    symfony propel:build-all-load --connection=my_connection
    

    这对我有用,希望对你有帮助。

    【讨论】:

      【解决方案3】:

      您也可以使用Propel::getConnection('db2') 手动检索连接。

      请记住,您所说的“db1”、“db2”是连接名称。您可以通过各种登录/权限(如只读等)与同一个数据库建立多个连接。

      这对于测试目的非常有用:您可以使用相同的连接名称与不同的数据库进行操作。没有办法让你的生产数据库崩溃:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-10
        • 1970-01-01
        • 2010-09-21
        • 1970-01-01
        • 2012-06-12
        • 1970-01-01
        • 2015-06-05
        • 2020-09-06
        相关资源
        最近更新 更多