一、3.5版本到4.X版本有哪些优化升级

Breaking changes between Neo4j 3.5 and Neo4j 4.x - Upgrade and Migration Guide

二、3.X版本的neo4j中的各种配置环境

Windows installation - Operations Manual

三、迁移参考

Galaxybase-convert实践:两步实现Neo4j数据迁移 - 哔哩哔哩

neo4j数据库迁移-CSDN博客

neo4j数据库迁移的一些问题_neo4j dump导入失败-CSDN博客

https://www.cnblogs.com/chen8023miss/p/11947110.html

Neo4j笔记-数据迁移(导出/导入)_neo4j数据导入导出-CSDN博客

四、用GPT写了一下,也不成功

import subprocess
import os
import sys

def run_command(command):
    """运行系统命令并返回输出和错误信息"""
    process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
    stdout, stderr = process.communicate()
    return process.returncode, stdout.decode(), stderr.decode()

def backup_neo4j_3_5(backup_file):
    """备份 Neo4j 3.5 数据"""
    print("Backing up Neo4j 3.5 data...")
    command = f"neo4j-admin dump --database=neo4j --to={backup_file}"
    returncode, stdout, stderr = run_command(command)
    
    if returncode != 0:
        print(f"Backup failed: {stderr}")
        sys.exit(1)
    print("Backup completed successfully.")

def stop_neo4j_3_5():
    """停止 Neo4j 3.5 服务"""
    print("Stopping Neo4j 3.5...")
    command = "neo4j stop"
    returncode, stdout, stderr = run_command(command)
    
    if returncode != 0:
        print(f"Failed to stop Neo4j 3.5: {stderr}")
        sys.exit(1)
    print("Neo4j 3.5 stopped.")

def start_neo4j_5_21():
    """启动 Neo4j 5.21 服务"""
    print("Starting Neo4j 5.21...")
    command = "neo4j start"
    returncode, stdout, stderr = run_command(command)
    
    if returncode != 0:
        print(f"Failed to start Neo4j 5.21: {stderr}")
        sys.exit(1)
    print("Neo4j 5.21 started.")

def restore_neo4j_5_21(backup_file):
    """恢复数据到 Neo4j 5.21"""
    print("Restoring data to Neo4j 5.21...")
    command = f"neo4j-admin load --from={backup_file} --database=neo4j --force"
    returncode, stdout, stderr = run_command(command)
    
    if returncode != 0:
        print(f"Data restoration failed: {stderr}")
        sys.exit(1)
    print("Data restoration completed successfully.")

if __name__ == "__main__":
    backup_file = "backup.dump"

    # 备份 Neo4j 3.5 数据
    backup_neo4j_3_5(backup_file)

    # 停止 Neo4j 3.5 服务
    stop_neo4j_3_5()

    # 启动 Neo4j 5.21
    start_neo4j_5_21()

    # 恢复数据到 Neo4j 5.21
    restore_neo4j_5_21(backup_file)

    print("Upgrade completed successfully!")

使用说明

  1. 确保环境:确保你的系统中已经安装了 Neo4j,并且 neo4j-admin 命令在系统路径中可用。

  2. 运行脚本:将上述代码保存为 upgrade_neo4j.py,然后在终端中运行该脚本:

  3. 权限:确保你有足够的权限来停止和启动 Neo4j 服务。

python upgrade_neo4j.py

注意事项

  • 备份文件:脚本会在当前目录下创建一个名为 backup.dump 的备份文件。你可以根据需要修改文件名。
  • 错误处理:脚本中包含基本的错误处理。如果任何步骤失败,脚本将输出错误信息并退出。
  • 兼容性:在升级之前,请确保你的数据模型和查询在新版本中仍然兼容。Neo4j 5.x 版本引入了一些新的特性和变更。

官方的数据迁移文件 

Migration checklist - Upgrade and Migration Guide

大量数据的快速导入

卯卯 | 炼就一手绝世刀法!-neo4j大批量导入数据的方式

或者直接使用官方的方法进行导入

Importing data - Operations Manual

还有一些参考的链接

neo4j数据的csv导出与备份_command failed: active logical log detected, this -CSDN博客

neo4j 大量数据的批量导入_neo4j批量导入的实体、关系一定要建立一个id吗-CSDN博客Importing CSV data into Neo4j - Getting Started 

neo4j(3.5.8)数据库切换、csv文件的导入和导出_neo4j导出数据库-CSDN博客

Installation - APOC Extended Documentation

neo4j历史版本的下载链接地址

https://we-yun.com/doc/neo4j/

apoc安装

1.首先要找到版本和自己的neo4j进行匹配 

Releases · neo4j/apoc (github.com)很全面的一个新版本的apoc下载链接,老版本的就可以去官网上之间找了Installation - APOC Extended Documentation (neo4j.com)

apoc插件分为两种,一个是core核心版,一个是 all 豪华本。另外,apoc插件本身也是需要和neo4j的版本号一一对应的,两者是需要版本兼容的关系。

2.老版本安装参考

(1)将下载的jar文件放在plugins文件夹里,

(2)在confj文件里添加apoc.export.file.enable=true

(3)检查有没有安装成功,输入return apoc.version()

3.新版本安装参考neo4j-5.11.0安装APOC插件or配置允许使用过程的权限_neo4j 5.x 没有apoc-CSDN博客

能够成功安装两个版本的apoc

数据的导出

1.数据导出为csv格式,参考链接为:

neo4j导出导入csv文件_neo4j导出csv-CSDN博客

导出后为一系列的文件,包括节点和关系两个部分。

2.数据导入

导入数据时需要配置一下环境,在conf文件里创建apoc.conj文件(或者是直接在neo4j.conj文件里直接添加?我也不太清楚,低版本和高版本应该是不一样的,具体看情况来),添加以下代码:

apoc.import.file.use_neo4j_config=true
apoc.export.file.enabled=true
apoc.import.file.enabled=true
dbms.directories.import=import
dbms.security.allow_csv_import_from_file_urls=true

使用neo4j admin批量导入csv数据 

导入节点的时候使用的链接是neo4j导入导出csv文件_neo4j导出csv文件-CSDN博客,但是继续导入关系的时候就会出现问题。

有一个简单的方法但是没有成功neo4j迁移数据从4.4版本到5.17版本_neo4j-admin database migrate-CSDN博客

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐