当前位置: 首页 > 面试题库 >

从neo4j docker内的备份创建neo4j数据库

尉迟招
2023-03-14
问题内容

Neo4j对我来说是新的。我有neo4j数据库的备份,我想通过使用该备份创建数据库来构建docker容器。

我知道我可以使用neo4j-admin restore --from=<backup-directory> [--database=<name>] [--force[=<true|false>]]命令,但是我正在寻找docker容器在创建容器时可以用来重新创建数据库的东西。

neo4j
docker映像
的文档使用容器内的现有数据库数据库。但是我需要还原备份并从中创建数据库。


问题答案:

EXTENSION_SCRIPT官方图片挂钩

Neo4j的官方映像提供了一个挂钩,因此您可以在启动时加载数据。为此,您必须定义一个EXTENSION_SCRIPT在运行时命名的环境变量,该变量指向要运行的数据库还原脚本(请参阅https://neo4j.com/developer/docker-23/)。

这是使用docker-compose的示例(也可以使用Dockerfile完成):

docker-compose.yml文件:

version: '2'
services:
  neo4j:
    image: neo4j:3.2
    ports:
     - "7474:7474"
     - "7687:7687"
    environment:
     - EXTENSION_SCRIPT=/neo4j-data/neo4j-init.sh :
    volumes:
     - ./neo4j-data:/neo4j-data

然后,在初始化脚本中,必须第一次还原数据库

neo4j-init.sh文件:

#!/bin/bash
set -euo pipefail
IFS=$'\n\t'

# do not run init script at each container strat but only at the first start
if [ ! -f /tmp/neo4j-import-done.flag ]; then
    /var/lib/neo4j/bin/neo4j-admin neo4j-admin restore --from=<backup-directory mount as a docker volume under /neo4j-data> [--database=<name>] [--force[=<true|false>]]
    touch /tmp/neo4j-import-done.flag
else
    echo "The import has already been made."
fi


 类似资料:
  • GitLab允许使用简单的命令获取存储库的备份副本。 在本章中,我们将讨论如何在GitLab中进行备份: 步骤(1): 首先,使用SSH(Secure Shell)登录到您的GitLab服务器。 步骤(2): 使用以下命令创建GitLab的备份: 步骤(3): 您可以通过添加环境变量SKIP来从备份中排除某些目录,如下所示: 步骤(4): 备份tar文件将在默认的目录中创建。 浏览到此路径并键入以

  • 我试图从同一个服务器上的数据库的旧备份创建一个新数据库。当使用SQL服务器管理工作室并试图从备份恢复到新数据库时,我得到这个错误 在谷歌搜索之后,我找到了这段代码 我想知道移动语句是否会干扰备份来自该服务器的数据库? 谢谢,感谢所有的帮助。

  • 在使用@RepositoryRestResource将域对象导出到Rest时,如何在Java中创建Neo4j关系?

  • 前提: 脚本每n秒运行一次,这将创建定义文件到定义位置的备份。创建n个备份后,清除(删除)过期的备份。 问题: 我设法开始使用此版本来备份文件夹并删除较旧的verisons,但当我尝试使用特定文件时“找不到文件”。我已经为此抓耳挠腮了几个小时,我可能错过了一些小东西。例如,我不想简单地删除所有. xlsx文件,因为Target文件夹中可能会有多个不同的. xlsx文件。如果有3个较新版本可用,我只

  • 本文向大家介绍neo4j 创建,包括了neo4j 创建的使用技巧和注意事项,需要的朋友参考一下 示例 创建一个节点 建立关系 查询模板 在浏览器GUI(默认值:http:// localhost:7474 / browser /)中本地运行neo4j,可以运行以下命令来获取查询选项板。 :play query template 这可以帮助您开始通过键入查询来创建和合并节点和关系。

  • 我使用的是Spring数据Neo4j 3.3。1.2与Neo4j服务器一起发布。3. 我的问题是有一些节点是我的实体的副本,但它只有索引属性。 我的班级看起来像这样 当一个新节点被创建时,我首先检查是否有一个现有的节点,如果它存在就更新它,否则创建一个新的节点。 存储库接口。 在Neo4j中,实体被创建到具有所有属性的节点。但是有些节点也有一个只包含productId的重复节点。问题是这并没有发生