知识库

在 Neo4j 3.1 中手动合并 neo4j-wrapper.conf 到 neo4j.conf

Neo4j 3.1 将 Neo4j 3.0 中进行的配置更改更进一步,并附带一个配置文件:conf/neo4j.conf。这是合并conf/neo4j.confconf/neo4j-wrapper.conf内容的结果。升级不会自动合并这些文件,并且conf/neo4j-wrapper.conf已弃用,但在 3.x 结束前仍受支持。因此,合并这两个文件在此时是可选的,但在为将来版本做准备时是一个好的步骤。

可以简单地复制conf/neo4j-wrapper.conf的全部内容,并将其粘贴到conf/neo4j.conf的末尾。或者,使用下面的示例脚本。只需复制脚本,将其粘贴到$NEO4J_HOME/bin中具有执行权限的新文件中,然后运行它。

#!/usr/bin/env bash
# This script will merge an existing neo4j.conf and neo4j-wrapper.conf
# This script is designed to be run from the bin/ directory of Neo4j, and expects both neo4j.conf
# and neo4j-wrapper.conf to be located in the conf/ directory.
# This is a sample script that is not part of the Neo4j project.
# Please be sure to read, understand and adapt this script as appropriate for your environment

set -o errexit -o nounset -o pipefail
[[ "${TRACE:-}" ]] && set -o xtrace

: "${NEO4J_BIN:=$(dirname "$0")}"
readonly NEO4J_BIN
. "${NEO4J_BIN}/neo4j-shared.sh"

main() {
  setup_environment
  check_java
  build_classpath
  export NEO4J_HOME NEO4J_CONF

  NOW=$(date +"%s")
  CONF_CONTAINS_WRAPPER=$(ls "${NEO4J_CONF}" | grep -x "neo4j-wrapper.conf" | wc -l | tr -d '[:space:]')
  # Check if there is a neo4j-wrapper.conf in conf directory
  if [ "$CONF_CONTAINS_WRAPPER" = "1" ]; then
    # Make a copy of current neo4j.conf file
    echo "Making backup of ${NEO4J_CONF}/neo4j.conf"
    cp "${NEO4J_CONF}/neo4j.conf" "${NEO4J_CONF}/neo4j.conf.bak.${NOW}"
    # Append neo4j-wrapper.conf to end of current neo4j.conf file
    echo "Appending ${NEO4J_CONF}/neo4j-wrapper.conf to the end of ${NEO4J_CONF}/neo4j.conf"
    echo "# Appended neo4j-wrapper.conf settings following this line" >> ${NEO4J_CONF}/neo4j.conf
    cat "${NEO4J_CONF}/neo4j-wrapper.conf" >> ${NEO4J_CONF}/neo4j.conf
    mv "${NEO4J_CONF}/neo4j-wrapper.conf" "${NEO4J_CONF}/neo4j-wrapper.conf.deprecated.${NOW}"
    # Success!
    echo "Successfully merged. Restart neo4j for changes to take effect."
  else
    echo "No neo4j-wrapper.conf found, exiting"
  fi
}

main "$@"