sd-model-organizer/scripts/mo/data/init_storage.py

40 lines
1.1 KiB
Python

from scripts.mo.environment import env, STORAGE_SQLITE, STORAGE_FIREBASE
def _init_sqlite_storage():
error = None
try:
from scripts.mo.data.sqlite_storage import SQLiteStorage
env.storage = SQLiteStorage()
except Exception as e:
error = f'failed to init SQLite storage: {e}'
return error
def _init_firebase_storage():
error = None
try:
from scripts.mo.data.firebase_storage import FirebaseStorage
env.storage = FirebaseStorage()
except Exception as e:
error = f'failed to init Firebase storage: {e}'
return error
def initialize_storage():
error = None
if hasattr(env, 'storage_type'):
storage_type = env.storage_type()
if storage_type == STORAGE_SQLITE:
error = _init_sqlite_storage()
elif storage_type == STORAGE_FIREBASE:
error = _init_firebase_storage()
else:
error = f'unknown storage_type attribute value: {storage_type}'
else:
env.storage_error = 'storage_type attribute is missing.'
if error is not None:
env.storage_error = f'Unable to initialize database: {error}'