40 lines
1.1 KiB
Python
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}'
|