我一直在为一个大型项目使用Couchbase,其中我们只消耗数据,但没有实际写入Couchbase集群的要求。我想写一些管理工具,并能够通过API而不是web控制台创建设计文档和视图。
创建文档根本不是问题,但每当我使用setDesignDoc()时,我都会收到以下错误消息:
Fatal error: Uncaught exception 'CouchbaseLibcouchbaseException' with message 'Failed to store design doc: Invalid input/arguments' in ....我可以使用getDesignDoc()从源获得实际的视图数据,并使用它在目标服务器上创建设计文档,如下所示:
$connandleDestination->setDesignDoc( "myDesignDoc", $connSource->getDesignDoc("myDesignDoc") );这就是我得到上面的错误信息的地方。
顺便说一句,我正在使用PHP SDK和Couchbase 2.5.1的最新版本
发布于 2014-08-25 17:33:13
您能否确认您给出的示例代码是否与您正在使用的代码完全相同?
$connandleDestination->setDesignDoc( "myDesignDoc", $connSource->getDesignDoc("myDesignDoc") );您给出的内容不会像API docs中的语法那样工作:
setDesignDoc(string $name, string $document) : bool因此,您似乎正在尝试将一个新文档myDesignDoc设置为等于设计文档myDesignDoc,该文档要么不存在,要么没有任何影响(因为设置为等于本身不会导致任何更改-并且使用现有设计文档的名称创建一个新的设计文档将直接覆盖它)。
get()将返回一个文档(它在setDesignDoc输入中是有效的,并且该文档可以与要创建的新设计文档具有相同的名称。
https://stackoverflow.com/questions/25439152
复制相似问题