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

fix: allow to disable the take/restore backup from import #238

Merged
merged 1 commit into from
Dec 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions .github/workflows/import_packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,13 @@ jobs:
run: |
export PYTHONPATH=$PYTHONPATH:./
export BACKUP_FILESYSTEM_PATH=/tmp/backup_weaviate/
export BACKUP_FOLDER=backup
# Conditionally export the variables only if artifact download is enabled
if [ "${{ github.event.inputs.enable_artifact_download }}" == "true" ]; then
export BACKUP_FOLDER=backup
fi
python scripts/import_packages.py
python scripts/import_packages.py
else
python scripts/import_packages.py --restore_backup False
fi

- name: 'Upload Backup Files'
uses: actions/upload-artifact@v4
Expand Down
32 changes: 28 additions & 4 deletions scripts/import_packages.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import json
import os
import shutil
import argparse


import weaviate
Expand All @@ -14,7 +15,10 @@


class PackageImporter:
def __init__(self):
def __init__(self, take_backup=True, restore_backup=True):
self.take_backup_flag = take_backup
self.restore_backup_flag = restore_backup

self.client = weaviate.WeaviateClient(
embedded_options=EmbeddedOptions(
persistence_data_path="./weaviate_data",
Expand Down Expand Up @@ -120,14 +124,34 @@ async def add_data(self):
)

async def run_import(self):
self.restore_backup()
if self.restore_backup_flag:
self.restore_backup()
self.setup_schema()
await self.add_data()
self.take_backup()
if self.take_backup_flag:
self.take_backup()


if __name__ == "__main__":
importer = PackageImporter()
parser = argparse.ArgumentParser(
description="Run the package importer with optional backup flags.")
parser.add_argument(
"--take-backup",
type=lambda x: x.lower() == "true",
default=True,
help="Specify whether to take a backup after "
"data import (True or False). Default is True.",
)
parser.add_argument(
"--restore-backup",
type=lambda x: x.lower() == "true",
default=True,
help="Specify whether to restore a backup before "
"data import (True or False). Default is True.",
)
args = parser.parse_args()

importer = PackageImporter(take_backup=args.take_backup, restore_backup=args.restore_backup)
asyncio.run(importer.run_import())
try:
assert importer.client.is_live()
Expand Down
Loading