3DS-RPC/server/database.py
Spotlight ac44dc663b
Initial migration towards separate database logic
We're simply breaking apart logic here - the majority of models are not implemented. The upgrade to Flask-SQLAlchemy has not yet been tested on `server`.
2024-07-22 13:20:40 -05:00

32 lines
1.0 KiB
Python

import os
from sqlalchemy import create_engine, delete
from sqlalchemy.orm import DeclarativeBase, mapped_column, Mapped, Session
from sqlalchemy.types import Integer
import sys
sys.path.append('../')
from api.networks import NetworkType
class Base(DeclarativeBase):
pass
class Config(Base):
__tablename__ = "config"
network: Mapped[NetworkType] = mapped_column("network", Integer(), primary_key=True)
backend_uptime: Mapped[float] = mapped_column("BACKEND_UPTIME")
def start_db_time(time: float, network_type: NetworkType):
"""Updates the database to track the starting time for the specific backend."""
engine = create_engine('sqlite:///' + os.path.abspath('sqlite/fcLibrary.db'))
with Session(engine) as session:
# TODO: This should be an upsert, not a deletion and insertion.
session.execute(delete(Config).where(Config.network == network_type))
new_time = Config(network=network_type, backend_uptime=time)
session.add(new_time)
session.commit()