如何在不重复代码的情况下在实时数据库和生产数据库之间切换?

时间:2016-08-24 00:23:09

标签: node.js mongodb mongoose

这是我的情况。我有一个基于REST的广泛API,使用Mongoose连接到MongoDB数据库。 API被编写为标准的“MEAN”堆栈应用程序。

目前,当开发人员查询API时,他们总是连接到实时生产数据库。我想要做的是拥有一个完全重复的数据库作为“临时”数据库,首先添加新数据,在一段时间内进行审查,然后移动到实时数据库。然后,我希望开发人员能够通过修改查询来查询任何一个。

我开始使用Mongoose文档来研究这个问题,似乎模型与数据库连接相关联,如果我想拥有多个连接,我还必须拥有多个模型,每个连接一个。这将是WET代码的噩梦,而不是我想要的路径。

我想要做的就是不要触摸我的任何代码,只需要一个切换到适合给定查询的数据库。所以我的问题是,我怎样才能做到这一点?可能吗?文档似乎暗示它不是。

1 个答案:

答案 0 :(得分:1)

您是否考虑过设置应用程序的阶段版本,而不是尝试维护连接在同一代码库中的两个环境?它连接到哪个数据库可以通过环境变量或其他配置选项进行设置。

开发人员仍然只需要进行更改以查询其中一个,您可以在完成审查过程后将数据从阶段数据库迁移到生产/实时数据库。