vpn-btcpay-provisioner/app/utils/db/__init__.py
2025-01-10 08:20:21 +00:00

23 lines
635 B
Python

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from pathlib import Path
def get_db_path():
base_dir = Path(__file__).resolve().parent.parent.parent.parent
data_dir = base_dir / 'data'
data_dir.mkdir(exist_ok=True)
return data_dir / 'vpn.db'
def init_db():
"""Initialize the database"""
from .models import Base
db_url = f"sqlite:///{get_db_path()}"
engine = create_engine(db_url)
Base.metadata.create_all(engine)
return engine
def get_session():
"""Get a database session"""
engine = init_db()
Session = sessionmaker(bind=engine)
return Session()