Skip to content
This repository was archived by the owner on Jun 5, 2025. It is now read-only.

Commit 0125597

Browse files
committed
feat: enable restore from previous backups
1 parent 86d70aa commit 0125597

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

.github/workflows/import_packages.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ jobs:
4444
if_no_artifact_found: ignore
4545

4646
- name: Run sync
47+
env:
48+
BACKUP_FILESYSTEM_PATH: /tmp/
49+
BACKUP_FOLDER: backup
4750
run: |
4851
export PYTHONPATH=$PYTHONPATH:./
4952
python scripts/import_packages.py

scripts/import_packages.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import asyncio
2-
from datetime import date
32
import json
43
import os
54

@@ -18,7 +17,8 @@ def __init__(self):
1817
self.client = weaviate.WeaviateClient(
1918
embedded_options=EmbeddedOptions(
2019
persistence_data_path="./weaviate_data", grpc_port=50052,
21-
additional_env_vars={"ENABLE_MODULES": "backup-filesystem", "BACKUP_FILESYSTEM_PATH": os.getenv("BACKUP_FILESYSTEM_PATH", "/tmp")}
20+
additional_env_vars={"ENABLE_MODULES": "backup-filesystem",
21+
"BACKUP_FILESYSTEM_PATH": os.getenv("BACKUP_FILESYSTEM_PATH", "/tmp")}
2222
)
2323
)
2424
self.json_files = [
@@ -30,6 +30,14 @@ def __init__(self):
3030
self.inference_engine = LlamaCppInferenceEngine()
3131
self.model_path = "./models/all-minilm-L6-v2-q5_k_m.gguf"
3232

33+
def restore_backup(self):
34+
if os.getenv("BACKUP_FOLDER"):
35+
try:
36+
self.client.backup.restore(backup_id=os.getenv("BACKUP_ORIGIN_ID", "backup"),
37+
backend="filesystem", wait_for_completion=True)
38+
except Exception as e:
39+
print(f"Failed to restore backup: {e}")
40+
3341
def setup_schema(self):
3442
if not self.client.collections.exists("Package"):
3543
self.client.collections.create(
@@ -87,11 +95,13 @@ async def add_data(self):
8795
)
8896

8997
async def run_import(self):
98+
self.restore_backup()
9099
self.setup_schema()
91100
# await self.add_data()
92101

93102
#  take a backup of the data
94-
self.client.backup.create(backup_id="backup-"+date.today().strftime("%Y-%m-%d"), backend="filesystem", wait_for_completion=True)
103+
self.client.backup.create(backup_id=os.getenv("BACKUP_TARGET_ID", "backup"),
104+
backend="filesystem", wait_for_completion=True)
95105

96106

97107
if __name__ == "__main__":

0 commit comments

Comments
 (0)