40 lines
1.8 KiB
Python
40 lines
1.8 KiB
Python
|
|
#!/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!")
|