与Dynamo DB一起运行的Apostrophe CMS

时间:2019-06-28 13:44:10

标签: amazon-dynamodb apostrophe-cms

我们想在AWS中运行Apostrophe,但是我们的政策是使用Dynamo DB满足我们的数据库需求。 这可能吗?

https://docs.apostrophecms.org/apostrophe/tutorials/intermediate/accessing-the-database-directly#making-your-own-database-connections

它说:

  

也许您甚至根本不想使用MongoDB。没关系。没有人的   阻止您为自己建立数据库连接   项目特定的代码。

我认为这意味着可能。

我尝试扩展apostrophe-db模块以调用

self.apos.db = new AWS.DynamoDB();

但是该站点不会初始化。

任何尝试过此操作的人都可以举一些例子,如果可能的话。

谢谢

1 个答案:

答案 0 :(得分:1)

如果要使基本的Apostrophe-CMS模块使用MongoDB以外的其他语法的数据库,则需要进行很多工作。除非我非常误解,否则Dynamo DB不会使用与MongoDB相同的查询语法。 Apostrophe-CMS不具备即时切换到其他数据库的功能-您需要在几个Apostrophe模块中重写很多代码才能完成此任务,因为Apostrophe被编写为可与MongoDB一起使用。例如,撇号文档模块可以访问Apostrophe用于存储其大部分数据的文档集合。您可以在此处查看docs模块的设置方式:https://github.com/apostrophecms/apostrophe/blob/master/lib/modules/apostrophe-docs/lib/api.js

请注意该模块中有多少代码正在使用特定于MongoDB的查询语法。由于Apostrophe出色的继承系统,可能有可能覆盖Apostrophe用于访问MongoDB的每一段代码,并用代码替代其访问另一数据库的代码,但这可能是一项令人难以置信的工作。

您在问题中引用的那行似乎是指仅在自定义模块内部连接到另一个数据库。例如,如果要创建从SQL数据库而不是从Apostrope mongodb docs集合中提取的Comment小部件,则可以引入诸如node-mssql之类的NPM包,并在其中覆盖许多默认的Apostrophe-CMS小部件行为您的评论模块。这将允许您为该特定模块提取所需的任何数据,但是Apostrophe仍需要从其MongoDB实例中提取数据。

相关问题