बैकअप और रिस्टोर
बैकअप के लिए अपनी मेमोरीज़ निर्यात करें, minds के बीच माइग्रेट करें, डेटा हानि के बाद रिस्टोर करें।
बैकअप और रिस्टोर
Synapse मेमोरी बैकअप, माइग्रेशन, और आपदा पुनर्प्राप्ति के लिए पूर्ण निर्यात/आयात प्रदान करता है। यह गाइड आवश्यक ऑपरेशन्स को कवर करती है।
निर्यात
पूर्ण Mind निर्यात
एक mind में सभी मेमोरीज़ को JSON के रूप में निर्यात करें:
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/memory/mind-export > backup.jsonप्रतिक्रिया प्रारूप:
{
"mind_id": "m_xyz789",
"mind_name": "Work Mind",
"exported_at": "2026-06-27T...",
"memory_count": 142,
"memories": [
{
"id": "mem_001",
"category": "identity",
"key": "user_name",
"content": "Michael Schäfer",
"tags": ["person", "identity"],
"priority": "critical",
"source": "user",
"verified": true,
"created_at": "2026-06-15T...",
"updated_at": "2026-06-27T..."
}
]
}इंक्रीमेंटल निर्यात (Diff)
केवल किसी टाइमस्टैम्प के बाद से बदली गई मेमोरीज़ निर्यात करें:
SINCE=$(date -d "2026-06-01" +%s)
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
"https://synapse.schaefer.zone/memory/diff?since=$SINCE" > incremental.jsonप्रतिक्रिया:
{
"added": [...],
"updated": [...],
"deleted": [...]
}स्वचालित बैकअप
cron के माध्यम से दैनिक बैकअप शेड्यूल करें:
curl -X POST https://synapse.schaefer.zone/cron \
-H "Authorization: Bearer YOUR_MIND_KEY" \
-H "Content-Type: application/json" \
-d '{
"schedule": "0 2 * * *",
"endpoint": "https://synapse.schaefer.zone/memory/mind-export",
"method": "GET",
"headers": {"Authorization": "Bearer YOUR_MIND_KEY"}
}'cron एंडपॉइंट प्रतिक्रिया प्राप्त करता है लेकिन इसे स्टोर नहीं करता। वास्तविक बैकअप के लिए, cron को अपने स्वयं के बैकअप सर्वर पर निर्देशित करें जो प्रतिक्रिया सहेजता है।
बेहतर: बाहरी बैकअप स्क्रिप्ट
#!/bin/bash
# backup-synapse.sh
MIND_KEY="${SYNAPSE_MIND_KEY}"
DATE=$(date +%Y%m%d)
BACKUP_DIR="/backups/synapse"
mkdir -p "$BACKUP_DIR"
curl -s -H "Authorization: Bearer $MIND_KEY" \
https://synapse.schaefer.zone/memory/mind-export \
> "$BACKUP_DIR/synapse-$DATE.json"
# Keep last 30 days
find "$BACKUP_DIR" -name "synapse-*.json" -mtime +30 -delete
echo "Backup saved: $BACKUP_DIR/synapse-$DATE.json"crontab में जोड़ें:
0 2 * * * /usr/local/bin/backup-synapse.shरिस्टोर
उसी Mind में रिस्टोर करें
# Parse backup and re-POST each memory
jq -c '.memories[]' backup.json | while read mem; do
curl -X POST https://synapse.schaefer.zone/memory \
-H "Authorization: Bearer YOUR_MIND_KEY" \
-H "Content-Type: application/json" \
-d "$(echo "$mem" | jq '{category, key, content, tags, priority}')"
doneनए Mind में रिस्टोर करें
# 1. Create new mind
NEW_KEY=$(curl -s -X POST https://synapse.schaefer.zone/minds \
-H "Authorization: Bearer YOUR_JWT" \
-H "Content-Type: application/json" \
-d '{"name":"Restored Mind","description":"Restore from backup"}' \
| jq -r .mind_key)
# 2. Import memories to new mind
jq -c '.memories[]' backup.json | while read mem; do
curl -X POST https://synapse.schaefer.zone/memory \
-H "Authorization: Bearer $NEW_KEY" \
-H "Content-Type: application/json" \
-d "$(echo "$mem" | jq '{category, key, content, tags, priority}')"
donePython रिस्टोर स्क्रिप्ट
import json
import requests
URL = "https://synapse.schaefer.zone"
MIND_KEY = "mk_..."
def restore(backup_file):
with open(backup_file) as f:
data = json.load(f)
for mem in data["memories"]:
requests.post(
f"{URL}/memory",
headers={
"Authorization": f"Bearer {MIND_KEY}",
"Content-Type": "application/json"
},
json={
"category": mem["category"],
"key": mem["key"],
"content": mem["content"],
"tags": mem.get("tags", []),
"priority": mem.get("priority", "normal")
}
)
print(f"Restored {len(data['memories'])} memories")
restore("backup.json")Minds के बीच माइग्रेशन
def migrate_memories(source_key, target_key):
"""Migrate all memories from source mind to target mind."""
# Export from source
r = requests.get(
f"{URL}/memory/mind-export",
headers={"Authorization": f"Bearer {source_key}"}
)
data = r.json()
# Import to target
for mem in data["memories"]:
requests.post(
f"{URL}/memory",
headers={
"Authorization": f"Bearer {target_key}",
"Content-Type": "application/json"
},
json={
"category": mem["category"],
"key": mem["key"],
"content": mem["content"],
"tags": mem.get("tags", []),
"priority": mem.get("priority", "normal")
}
)
print(f"Migrated {len(data['memories'])} memories")अन्य डेटा बैकअप
बैकअप करना न भूलें:
| डेटा प्रकार | एंडपॉइंट |
|---|---|
| Memories | GET /memory/mind-export |
| Tasks | GET /mind/tasks |
| Scripts | GET /scripts |
| Webhooks | GET /webhooks |
| Cron jobs | GET /cron |
| Variables | GET /var |
| Chat history | GET /chat/history?limit=10000 |
सत्यापन
रिस्टोर के बाद, सत्यापित करें:
# Count memories
curl -s -H "Authorization: Bearer $KEY" \
https://synapse.schaefer.zone/memory/stats | jq .total
# Compare with backup
jq .memory_count backup.jsonसर्वोत्तम प्रथाएँ
अगले कदम
- Memory API
- Cron और Scheduler — स्वचालित बैकअप के लिए