在Python中加载CouchDB设计文档的推荐方法?
我对coach非常陌生,但我正尝试在一个新的Python项目中使用它,我还想使用Python编写设计文档(视图)。我已经将coach配置为使用couchpy view服务器,我可以通过在Futon中输入一些简单的map/reduce函数来确认这一点 在使用Python的couchdb模块时,有没有关于如何加载/同步设计文档的官方建议 我知道我可以发布设计文档,将它们“安装”到沙发上,但我的问题实际上是关于最佳实践。我需要某种在开发环境和生产环境中进行部署的策略。我的直觉是创建一个目录并将我所有的设计文档存储在那里,然后编写某种同步脚本将每个文档上传到coach中(可能只是盲目地覆盖已经存在的内容)。这是个好主意吗 “”的文档有5句话,实际上只是解释了如何安装couchpy。在上,提到了一个couchdb.design模块,听起来可能会有所帮助,但没有文档(我可以找到)。该模块的源代码表明它完成了我感兴趣的大部分工作,但它没有真正加载文件。我想我应该做一些模块发现,但我听说这不是Pythonic。建议 编辑:在Python中加载CouchDB设计文档的推荐方法?,python,couchdb,Python,Couchdb,我对coach非常陌生,但我正尝试在一个新的Python项目中使用它,我还想使用Python编写设计文档(视图)。我已经将coach配置为使用couchpy view服务器,我可以通过在Futon中输入一些简单的map/reduce函数来确认这一点 在使用Python的couchdb模块时,有没有关于如何加载/同步设计文档的官方建议 我知道我可以发布设计文档,将它们“安装”到沙发上,但我的问题实际上是关于最佳实践。我需要某种在开发环境和生产环境中进行部署的策略。我的直觉是创建一个目录并将我所有的
特别是,将map/reduce函数存储在字符串文本中的想法似乎完全是不成熟的。我想用真正的模块、真正的包和真正的单元测试来编写真正的python代码。我希望定期将我的“沙发视图”包与couchdb实例同步。这里有一种似乎合理的方法。首先,我创建了couchdb.design.ViewDefinition子类。(为了简洁起见,删除了注释和pydocs。) 现在,如果要同步:
import couchdb.design
from couchview.version import CurrentVersion
db = get_couch_db() # omitted for brevity
couchdb.design.ViewDefinition.sync_many(db, [CurrentVersion()], remove_missing=True)
这种方法的好处是:
current_version_view = couchview.version.CurrentVersion()
result = current_version_view(self.db, key=version_key)
它还没有准备好投入生产,但我认为这比在字符串文本中存储map/reduce函数更近了一大步
编辑:我最终就这个话题写了几篇博文,因为我找不到任何其他的建议来源:
current_version_view = couchview.version.CurrentVersion()
result = current_version_view(self.db, key=version_key)