推送新版本的应用程序时搜索索引不起作用

Seach index not working when pushing new version of app

我在我的 django 应用程序中使用 django-haystack 和 whoosh 搜索引擎。一切正常,除了当我 git push 新版本到我的 OpenShift 服务器时,搜索停止工作。它根本没有 return 任何结果。如果我 运行 ./manage.py update_index 它开始工作。
我的 .gitignore 文件中有 whoosh_index/。我检查了 git ls-files 并且 whoosh_index 文件夹不存在。所以我的本地主机文件不应该覆盖任何 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?我错过了什么?

来自Modifying Applications

All OpenShift applications are built around a Git source control workflow - you code locally, then push your changes to the server. The server then runs a number of hooks to build and configure your application, and finally restarts your application. Optionally, applications can elect to be built using Jenkins, or run using hot deployment which speeds up the deployment of code to OpenShift.

完成的更改分为 5 个阶段:

  • Pre-Receive
  • Pre-Build
  • 建造
  • 部署
  • Post-Deploy

您可以将索引更新操作添加到构建阶段,方法是将其添加到文件中:

.openshift/action_hooks/build

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

$ touch .openshift/markers/hot_deploy

With hot deployment the changes to application code are applied without restarting the application cartridge, resulting in increased deployment speed and minimized application downtime.