我一直盯着用 CouchDB 构建服务。该应用程序旨在让用户拥有无限的存储桶,原因有很多,并且运行良好。现在,由于某些企业功能,我已切换到 Couchbase。我正在使用 PouchDB,这就是我需要 Sync Gateway 的原因。可悲的是,我只能映射一个存储桶/数据库。
这对我来说是一个完美的解决方案:/db/bucket/etc
任何想法如何实现这一目标?
我一直盯着用 CouchDB 构建服务。该应用程序旨在让用户拥有无限的存储桶,原因有很多,并且运行良好。现在,由于某些企业功能,我已切换到 Couchbase。我正在使用 PouchDB,这就是我需要 Sync Gateway 的原因。可悲的是,我只能映射一个存储桶/数据库。
这对我来说是一个完美的解决方案:/db/bucket/etc
任何想法如何实现这一目标?
Couchbase 服务器存储桶可以保存任意数据。对于 Sync Gateway,Couchbase Server 存储桶只是存储引擎目的地,与用户和数据访问无关。在 Sync Gateway 配置文件中,您可以列出持久保存到不同存储桶的多个数据库:
{
"databases":{
"db1": {
"server": "http://localhost:8091",
"bucket": "db1bucket"
},
"db2": {
"server": "http://101.88.47.22:8091",
"bucket": "db2bucket"
}
}
}
现在,假设您在配置文件中只声明了一个数据库,并希望用户可以访问某些文档。您可以使用其中一种身份验证方法,然后在此基础上编写一个同步函数,它将在通道中路由文档并授予用户访问这些通道的权限。通道是动态创建的,可以创建的数量没有限制。如果您不希望使用用户身份验证来访问通道中的文档,您可以为客户端的复制器指定通道名称(这更简单)。
推荐的方法是每个项目或应用程序使用一个同步网关数据库,而不是每个用户。因此,您可能必须将文档从不同的 CouchDB 数据库迁移到一个 Sync Gateway 数据库中。