33 lines
720 B
Python
33 lines
720 B
Python
"""
|
|
Simple database initialization script.
|
|
|
|
Usage:
|
|
python scripts/init_db.py
|
|
"""
|
|
|
|
import os
|
|
from pathlib import Path
|
|
|
|
from backend.app.db import Base, engine
|
|
from backend.app import models # noqa: F401 - ensure models are imported
|
|
|
|
|
|
def ensure_data_dir():
|
|
db_url = os.getenv("DATABASE_URL", "sqlite:///./data/ops_core.db")
|
|
if db_url.startswith("sqlite:///"):
|
|
relative_path = db_url.replace("sqlite:///", "")
|
|
db_path = Path(relative_path).resolve()
|
|
db_dir = db_path.parent
|
|
db_dir.mkdir(parents=True, exist_ok=True)
|
|
|
|
|
|
def init_db():
|
|
ensure_data_dir()
|
|
Base.metadata.create_all(bind=engine)
|
|
print("Database initialized.")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
init_db()
|
|
|