44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
# [DEF:backend.src.scripts.init_auth_db:Module]
|
|
#
|
|
# @SEMANTICS: setup, database, auth, migration
|
|
# @PURPOSE: Initializes the auth database and creates the necessary tables.
|
|
# @LAYER: Scripts
|
|
# @RELATION: CALLS -> backend.src.core.database.init_db
|
|
#
|
|
# @INVARIANT: Safe to run multiple times (idempotent).
|
|
|
|
# [SECTION: IMPORTS]
|
|
import sys
|
|
import os
|
|
from pathlib import Path
|
|
|
|
# Add src to path
|
|
sys.path.append(str(Path(__file__).parent.parent.parent))
|
|
|
|
from src.core.database import init_db, auth_engine
|
|
from src.core.logger import logger, belief_scope
|
|
from src.scripts.seed_permissions import seed_permissions
|
|
# [/SECTION]
|
|
|
|
# [DEF:run_init:Function]
|
|
# @PURPOSE: Main entry point for the initialization script.
|
|
# @POST: auth.db is initialized with the correct schema and seeded permissions.
|
|
def run_init():
|
|
with belief_scope("init_auth_db"):
|
|
logger.info("Initializing authentication database...")
|
|
try:
|
|
init_db()
|
|
logger.info("Authentication database initialized successfully.")
|
|
|
|
# Seed permissions
|
|
seed_permissions()
|
|
|
|
except Exception as e:
|
|
logger.error(f"Failed to initialize authentication database: {e}")
|
|
sys.exit(1)
|
|
# [/DEF:run_init:Function]
|
|
|
|
if __name__ == "__main__":
|
|
run_init()
|
|
|
|
# [/DEF:backend.src.scripts.init_auth_db:Module] |