2.0.0 Beta : Self-hosted Release
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
import sqlite3
|
||||
|
||||
from database.paths import (
|
||||
L1_DB,
|
||||
L2_DB,
|
||||
L2_SCHEMA,
|
||||
L3_DB,
|
||||
L3_SCHEMA,
|
||||
RUNTIME_DATA_ROOT,
|
||||
ensure_runtime_directories,
|
||||
)
|
||||
|
||||
|
||||
def _apply_schema(database_path, schema_path):
|
||||
db = sqlite3.connect(str(database_path))
|
||||
try:
|
||||
db.execute('PRAGMA foreign_keys = ON')
|
||||
db.executescript(schema_path.read_text(encoding='utf-8'))
|
||||
result = db.execute('PRAGMA quick_check').fetchone()[0]
|
||||
if result != 'ok':
|
||||
raise RuntimeError(
|
||||
f'{database_path.name} quick_check failed: {result}'
|
||||
)
|
||||
db.commit()
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
def bootstrap_runtime():
|
||||
ensure_runtime_directories()
|
||||
|
||||
l1 = sqlite3.connect(str(L1_DB))
|
||||
try:
|
||||
l1.execute(
|
||||
"""
|
||||
CREATE TABLE IF NOT EXISTS raw_iframe_network (
|
||||
match_id TEXT PRIMARY KEY,
|
||||
content TEXT NOT NULL,
|
||||
processed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
)
|
||||
"""
|
||||
)
|
||||
l1.commit()
|
||||
finally:
|
||||
l1.close()
|
||||
|
||||
_apply_schema(L2_DB, L2_SCHEMA)
|
||||
_apply_schema(L3_DB, L3_SCHEMA)
|
||||
|
||||
from web.database import initialize_web_db
|
||||
initialize_web_db()
|
||||
|
||||
return {
|
||||
'data_root': str(RUNTIME_DATA_ROOT),
|
||||
'l1': str(L1_DB),
|
||||
'l2': str(L2_DB),
|
||||
'l3': str(L3_DB),
|
||||
}
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
result = bootstrap_runtime()
|
||||
print('YRTV runtime initialized')
|
||||
for key, value in result.items():
|
||||
print(f' {key}: {value}')
|
||||
|
||||
Reference in New Issue
Block a user