#!/usr/bin/env python3 from neo4j import GraphDatabase uri = "bolt://neo4j:7687" user = "neo4j" password = "Wecom@2026" driver = GraphDatabase.driver(uri, auth=(user, password)) with driver.session() as session: # 清除旧数据 session.run("MATCH (n) DETACH DELETE n") # 添加测试数据(带完整属性) session.run(""" CREATE (i1:Issue {name: "打印机驱动安装", category: "硬件问题", uuid: "issue-001", created_at: datetime(), updated_at: datetime()}) CREATE (a1:Action {name: "打印机驱动安装步骤", description: "1. 打开控制面板 2. 添加打印机 3. 选择手动添加", uuid: "action-001", created_at: datetime()}) CREATE (i1)-[:HAS_ACTION]->(a1) """) session.run(""" CREATE (i2:Issue {name: "网络连不上", category: "网络问题", uuid: "issue-002", created_at: datetime(), updated_at: datetime()}) CREATE (a2:Action {name: "网络诊断步骤", description: "1. 检查网线 2. 重启路由器 3. 检查IP配置", uuid: "action-002", created_at: datetime()}) CREATE (i2)-[:HAS_ACTION]->(a2) """) session.run(""" CREATE (i3:Issue {name: "邮箱无法收发", category: "软件问题", uuid: "issue-003", created_at: datetime(), updated_at: datetime()}) CREATE (a3:Action {name: "邮箱故障排除", description: "1. 检查网络 2. 清除缓存 3. 重新登录", uuid: "action-003", created_at: datetime()}) CREATE (i3)-[:HAS_ACTION]->(a3) """) # 验证 result = session.run("MATCH (i:Issue)-[:HAS_ACTION]->(a:Action) RETURN i.uuid as issue_uuid, i.name as issue_name, a.uuid as action_uuid, a.name as action_name") for record in result: print(f"Issue: {record['issue_uuid']} - {record['issue_name']} -> Action: {record['action_uuid']} - {record['action_name']}") driver.close() print("Done!")