推送新版本的应用时,搜索索引无法正常工作

时间:2016-01-13 18:49:29

标签: django openshift django-haystack whoosh

我在我的django应用程序中使用django-haystack和嗖嗖搜索引擎。一切正常,除非我git push新版本到我的OpenShift服务器,搜索停止工作。它根本不会返回任何结果。如果我运行./manage.py update_index,它就会开始工作 我的whoosh_index/文件中有.gitignore。我检查了git ls-files并且没有whoosh_index文件夹。所以我的localhost文件不应该覆盖任何whoosh_index文件 目前我使用post_deploy脚本:

echo "Executing 'python ${OPENSHIFT_REPO_DIR}wsgi/app/manage.py update_index'"
python "$OPENSHIFT_REPO_DIR"wsgi/app/manage.py update_index

但是还有另一种方法,以便每次推送我的应用程序的新版本时都不需要update_index吗?我错过了什么?

1 个答案:

答案 0 :(得分:0)

来自Modifying Applications

  

所有OpenShift应用程序都围绕Git源代码控制工作流程构建 - 您在本地编码,然后将更改推送到服务器。该   服务器然后运行一些钩子来构建和配置你的   应用程序,最后重新启动您的应用程序。可选   应用程序可以选择使用Jenkins构建,也可以使用hot运行   部署加速了OpenShift代码的部署。

完成更改分为5个阶段:

  • 预接收
  • 预生成
  • 构建
  • 部署
  • 后部署

您可以通过将索引更新操作添加到文件中来将其添加到构建阶段:

.openshift/action_hooks/build

您可以通过需要热部署模式来禁用修改开放班次的整个操作:

$ touch .openshift/markers/hot_deploy
  

通过热部署,将应用对应用程序代码的更改   无需重新启动应用程序盒,导致增加   部署速度和最小化的应用程序停机时间。