【问题标题】:How to add a second database to the same connection (Apostrophe CMS Multisite)如何将第二个数据库添加到同一连接(撇号 CMS 多站点)
【发布时间】:2020-03-27 23:18:57
【问题描述】:

apostrophe-pages/index.jsconstruct方法中,到目前为止我一直在使用:

self.apos.db.db = options.apos.db.db(process.env.THE_SECOND_DB);

但是,随着多站点(或仅 CMS)的更新,使用相同的语法似乎不再可能。

查看emulate-mongo-2-driver,看起来newDb.db() 期望为以下内容定义client

return decorateDb(client.db(name));

但是,client 未定义。

解决此问题的最佳方法是什么?

编辑看起来问题是从 mongodbemulate-mongo-2-driver 的依赖关系发生了变化

所以要解决这个问题,我需要 fork multisite。能够配置我们是否要使用 multisite 的仿真驱动程序会很好,因为我没有使用 v2 驱动程序,现在它让我的整个应用程序停止运行。

【问题讨论】:

  • 有一个 PR 正在帮助解决这个问题:github.com/apostrophecms/emulate-mongo-2-driver/pull/10
  • 此外,如果您想再次使用它,添加“db”的新“db”子属性可能不是一个好主意,因为这会覆盖您用于获取第二个 db 的方法另一个级别。

标签: apostrophe-cms


【解决方案1】:

最近发布的emulate-mongo-2-driver 已解决此问题,因此您的原始代码将适用于npm update。但是,不建议覆盖apos.db.db,因为如果您想获得对第三个数据库的引用,您将来需要它仍然是一种方法。而是使用适合您的应用程序的有意义的名称创建一个新属性。

【讨论】:

    猜你喜欢
    • 2018-09-07
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 2021-03-05
    • 2013-05-31
    • 2014-05-24
    相关资源
    最近更新 更多