From 9cf05f44d02ee18ebb4b8311ee2fb69040c01a1d Mon Sep 17 00:00:00 2001 From: imcompiling Date: Mon, 3 Mar 2025 23:32:03 -0500 Subject: [PATCH] Fix error in model. The two channel ids need to be NULL by default, don't know them on object creation. --- database/database_test.py | 24 ++++++++++++------------ database/models.py | 8 ++++++-- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/database/database_test.py b/database/database_test.py index 7e9218a..5cf9343 100644 --- a/database/database_test.py +++ b/database/database_test.py @@ -1,9 +1,9 @@ import os from dotenv import load_dotenv -from sqlmodel import Session, create_engine, select +from sqlmodel import Session, SQLModel, create_engine, select -from models import Guild +from models import CategoryGroup, Guild load_dotenv() @@ -12,19 +12,19 @@ SQL_HOST = os.getenv("SQL_HOST", "") SQL_PASS = os.getenv("SQL_PASS", "") SQL_USER = os.getenv("SQL_USER", "") -# url = "sqlite:///database.db" -url = f"mysql+pymysql://{SQL_USER}:{SQL_PASS}@{SQL_HOST}/{SQL_DB}" +url = "sqlite:///database.db" +# url = f"mysql+pymysql://{SQL_USER}:{SQL_PASS}@{SQL_HOST}/{SQL_DB}" engine = create_engine(url) -# SQLModel.metadata.create_all(engine) +SQLModel.metadata.create_all(engine) with Session(engine) as session: - # guild = Guild(id=1, name="test guild", submission_channel=1, verification_channel=2) - # session.add(guild) - # group1 = CategoryGroup(name="group1", channel_id=1, guild_id=1, message_id=1) - # group2 = CategoryGroup(name="group2", channel_id=2, guild_id=1, message_id=2) - # session.add(group1) - # session.add(group2) - # session.commit() + guild = Guild(id=1, name="test guild") + session.add(guild) + group1 = CategoryGroup(name="group1", channel_id=1, guild_id=1, message_id=1) + group2 = CategoryGroup(name="group2", channel_id=2, guild_id=1, message_id=2) + session.add(group1) + session.add(group2) + session.commit() # anotherone = Guild(id=2, name="test guild 2", submission_channel=1, verification_channel=2) # session.add(anotherone) diff --git a/database/models.py b/database/models.py index 2ec17b6..ff5fa0d 100644 --- a/database/models.py +++ b/database/models.py @@ -22,8 +22,12 @@ class Guild(SQLModel, table=True): id: int = Field(sa_column=Column("GuildId", BIGINT(unsigned=True), primary_key=True, nullable=False)) name: str = Field(sa_column=Column("GuildName", VARCHAR), max_length=95) # deprecated, not currently used. - submission_channel: int = Field(sa_column=Column("SubmissionChannel", BIGINT(unsigned=True))) - verification_channel: int = Field(sa_column=Column("VerificationChannel", BIGINT(unsigned=True))) + submission_channel: int | None = Field( + sa_column=Column("SubmissionChannel", BIGINT(unsigned=True), nullable=True), default=None + ) + verification_channel: int | None = Field( + sa_column=Column("VerificationChannel", BIGINT(unsigned=True), nullable=True), default=None + ) active: bool = Field(sa_column=Column("Active", BOOLEAN), default=True) category_groups: list["CategoryGroup"] = Relationship(back_populates="guild", cascade_delete=True)