CouchDB在内存中的实现

CouchDB在内存中的实现,couchdb,Couchdb,CouchDB是否有模拟后端,即相同的REST接口和语义,但完全在内存中?我们有一个testsuite,它每次都在一个原始数据库上运行每个测试(为了可复制),但是在真实数据库上运行会更快。您是说在模拟数据库上运行吗 我认为没有现成的东西。两个想法: 内存文件系统上的CouchDB。设置ramdisk或tmpfs挂载,并配置CouchDBdatabase\u dir和view\u index\u dir指向那里 正在将CouchDB移植到浏览器IndexedDB标准。您没有说明您使用的是哪种语言和

CouchDB是否有模拟后端,即相同的REST接口和语义,但完全在内存中?我们有一个testsuite,它每次都在一个原始数据库上运行每个测试(为了可复制),但是在真实数据库上运行会更快。

您是说在模拟数据库上运行吗

我认为没有现成的东西。两个想法:

  • 内存文件系统上的CouchDB。设置ramdisk或tmpfs挂载,并配置CouchDB
    database\u dir
    view\u index\u dir
    指向那里
  • 正在将CouchDB移植到浏览器IndexedDB标准。您没有说明您使用的是哪种语言和环境,但如果您可以运行Node.js,这可能值得研究。PockDB势头良好,我认为它很快就会在Node.js中运行(可能通过jsdom或其他库。注意,这并不能为您提供完整的解决方案;但您已经将问题扩展到“Node.js是否有内存IndexedDB实现”,考虑到它的采用轨迹,答案是“是”或“很快”

  • 我也有同样的问题…对于测试,我只是不想设置couchdb…我只想有一些内存,尽可能简单

    我做了什么: *我创建了一个内存CouchDB连接器=>它只是“org.ektorp.CouchDB连接器”的一个非常简单的实现 *通过spring,我连接CouchDB连接实现,我需要它=>当我在开发测试中使用它时,我连接内存CouchDB连接器,如果我想连接到一个真正的CouchDB,我使用常用的连接器=>org.ektorp.impl.StdCouchDbConnector


    唯一的问题是,“org.ektorp.CouchDbConnector”有50多个方法,必须实现。就我的问题而言,仅实现其中的几个方法就足够了。这取决于您的测试用例。

    发现:-它支持不同的平台,似乎是一项认真的工作。

    晚会进行得比较晚,但基于上述PockDB项目,我在使用方面取得了巨大成功t(CouchDB的JavaScript实现)。它可以针对各种后端运行,包括内存中的后端。这意味着您可以运行

    pouchdb-server --in-memory
    
    获取与CouchDB兼容的内存服务器。还有其他几个命令行选项需要研究

    我认为它能够运行整个CouchDB测试套件,因此我猜您不太可能遇到太多的实现差异。

    是CouchDB的部分(正在进行中)内存实现,可以作为独立服务器运行


    还没有实现所有功能。

    我避免使用“mock”一词,因为我真正想要的是在真实数据库上运行,只需要一个更快的后端(不一定是持久的)。mock永远不会100%兼容,准确的mock维护起来很昂贵。对。你需要一个“mock”这是如此忠实于真实的东西,事实上,真实的东西。这是很好的测试。不幸的是,我没有比我列出的两个半答案更好的想法(这两个半答案加起来不是一个整体)。这真的非常有用!让我们希望它能获得更多动力。