No SQLModel
This commit is contained in:
1 parent
5f0e8c11b4
commit
9964fbf044
16 files changed
+91
-84
No files matched your search
+18
-11
@@ -1,17 +1,24 @@
|
||||
from datetime import datetime, timezone
|
||||
|
||||
from sqlmodel import SQLModel, Field, Relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
|
||||
from loon.web.db import Base
|
||||
|
||||
|
||||
class LogType(SQLModel, table=True):
|
||||
id: int = Field(default=None, primary_key=True)
|
||||
code: str = Field(nullable=False, unique=True)
|
||||
entries: list["LogEntry"] = Relationship(back_populates="log_type")
|
||||
class LogType(Base):
|
||||
__tablename__ = "logtype"
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
code: Mapped[str] = mapped_column(unique=True)
|
||||
entries: Mapped[list["LogEntry"]] = relationship(back_populates="log_type")
|
||||
|
||||
|
||||
class LogEntry(SQLModel, table=True):
|
||||
id: int = Field(default=None, primary_key=True)
|
||||
log_type_id: int = Field(foreign_key="logtype.id", nullable=False)
|
||||
log_type: LogType = Relationship(back_populates="entries")
|
||||
created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
|
||||
message: str = Field(nullable=False)
|
||||
class LogEntry(Base):
|
||||
__tablename__ = "logentry"
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
log_type_id: Mapped[int] = mapped_column(ForeignKey("logtype.id"))
|
||||
log_type: Mapped[LogType] = relationship(back_populates="entries")
|
||||
created_at: Mapped[datetime] = mapped_column(default=lambda: datetime.now(timezone.utc))
|
||||
message: Mapped[str]
|
||||
@@ -1,6 +1,7 @@
|
||||
import asyncio
|
||||
|
||||
from sqlmodel import Session, select
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from loon.web.db import engine
|
||||
from loon.web.logs.models import LogType, LogEntry
|
||||
@@ -14,7 +15,7 @@ def player_tag(uuid: str, username: str) -> str:
|
||||
def _write_log(log_type: LogTypeEnum, message: str) -> None:
|
||||
with Session(engine) as session:
|
||||
statement = select(LogType).where(LogType.code == log_type.value)
|
||||
log_type_object = session.exec(statement).first()
|
||||
log_type_object = session.execute(statement).scalars().first()
|
||||
|
||||
if not log_type_object:
|
||||
log_type_object = LogType(code=log_type.value)
|
||||
|
||||
Reference in new issue
Block a user