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

Commit 2cad22c

Browse files
authored
Merge pull request #204 from stacklok/restore_backup
feat: enable restore from previous backups
2 parents 3b5debb + 7b2d633 commit 2cad22c

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-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: 14 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,9 @@ 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",
22+
"/tmp")}
2223
)
2324
)
2425
self.json_files = [
@@ -30,6 +31,14 @@ def __init__(self):
3031
self.inference_engine = LlamaCppInferenceEngine()
3132
self.model_path = "./models/all-minilm-L6-v2-q5_k_m.gguf"
3233

34+
def restore_backup(self):
35+
if os.getenv("BACKUP_FOLDER"):
36+
try:
37+
self.client.backup.restore(backup_id=os.getenv("BACKUP_ORIGIN_ID", "backup"),
38+
backend="filesystem", wait_for_completion=True)
39+
except Exception as e:
40+
print(f"Failed to restore backup: {e}")
41+
3342
def setup_schema(self):
3443
if not self.client.collections.exists("Package"):
3544
self.client.collections.create(
@@ -87,11 +96,13 @@ async def add_data(self):
8796
)
8897

8998
async def run_import(self):
99+
self.restore_backup()
90100
self.setup_schema()
91101
# await self.add_data()
92102

93103
#  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)
104+
self.client.backup.create(backup_id=os.getenv("BACKUP_TARGET_ID", "backup"),
105+
backend="filesystem", wait_for_completion=True)
95106

96107

97108
if __name__ == "__main__":

0 commit comments

Comments
 (0)