Add SnakeCase column names that are already in database.

This commit is contained in:
2025-03-03 22:44:14 -05:00
parent ce3ed3c001
commit 6dfd3acad0
3 changed files with 65 additions and 42 deletions
+9 -2
View File
@@ -1,8 +1,15 @@
{ {
"cSpell.words": ["gmtime", "highscore", "highscores", "imcompiling", "nextcord"], "cSpell.words": [
"gmtime",
"highscore",
"highscores",
"imcompiling",
"nextcord",
"ondelete"
],
"python.analysis.diagnosticSeverityOverrides": { "python.analysis.diagnosticSeverityOverrides": {
"reportOptionalMemberAccess": false, "reportOptionalMemberAccess": false,
"reportArgumentType": "information", "reportArgumentType": "information",
"reportAttributeAccessIssue": "warning" "reportAttributeAccessIssue": "warning"
} }
} }
+23 -12
View File
@@ -1,19 +1,30 @@
from sqlmodel import Session, SQLModel, create_engine, select import os
from models import Guild from dotenv import load_dotenv
from sqlmodel import Session, SQLModel, create_engine
from models import CategoryGroup, Guild
load_dotenv()
SQL_DB = os.getenv("SQL_DB", "")
SQL_HOST = os.getenv("SQL_HOST", "")
SQL_PASS = os.getenv("SQL_PASS", "")
SQL_USER = os.getenv("SQL_USER", "")
url = "sqlite:///database.db" url = "sqlite:///database.db"
# url = f"mysql+pymysql://{SQL_USER}:{SQL_PASS}@{SQL_HOST}/{SQL_DB}"
engine = create_engine(url) engine = create_engine(url)
SQLModel.metadata.create_all(engine) SQLModel.metadata.create_all(engine)
with Session(engine) as session: with Session(engine) as session:
# guild = Guild(id=1, name="test guild", submission_channel=1, verification_channel=2) guild = Guild(id=1, name="test guild", submission_channel=1, verification_channel=2)
# session.add(guild) session.add(guild)
# group1 = CategoryGroup(name="group1", channel_id=1, guild_id=1, message_id=1) 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) group2 = CategoryGroup(name="group2", channel_id=2, guild_id=1, message_id=2)
# session.add(group1) session.add(group1)
# session.add(group2) session.add(group2)
# session.commit() session.commit()
# anotherone = Guild(id=2, name="test guild 2", submission_channel=1, verification_channel=2) # anotherone = Guild(id=2, name="test guild 2", submission_channel=1, verification_channel=2)
# session.add(anotherone) # session.add(anotherone)
@@ -23,7 +34,7 @@ with Session(engine) as session:
# session.add(group2) # session.add(group2)
# session.commit() # session.commit()
stmt = select(Guild).where(Guild.id == 1) # stmt = select(Guild)
guild = session.scalar(stmt) # guild = session.scalars(stmt)
print(guild.category_groups) # print(guild)
+33 -28
View File
@@ -1,6 +1,6 @@
"""File holds all model definitions of SQL tables.""" """File holds all model definitions of SQL tables."""
from sqlalchemy.dialects.mysql import BIGINT, INTEGER, SMALLINT from sqlalchemy.dialects.mysql import BIGINT, BOOLEAN, FLOAT, INTEGER, SMALLINT, VARCHAR
from sqlmodel import Column, Field, ForeignKey, Relationship, SQLModel, UniqueConstraint from sqlmodel import Column, Field, ForeignKey, Relationship, SQLModel, UniqueConstraint
@@ -19,12 +19,12 @@ class Guild(SQLModel, table=True):
__tablename__: str = "Guilds" __tablename__: str = "Guilds"
id: int = Field(sa_column=Column(BIGINT(unsigned=True), primary_key=True, nullable=False)) id: int = Field(sa_column=Column("GuildId", BIGINT(unsigned=True), primary_key=True, nullable=False))
name: str = Field(max_length=95) name: str = Field(sa_column=Column("GuildName", VARCHAR), max_length=95)
# deprecated, not currently used. # deprecated, not currently used.
submission_channel: int = Field(sa_column=Column(BIGINT(unsigned=True))) submission_channel: int = Field(sa_column=Column("SubmissionChannel", BIGINT(unsigned=True)))
verification_channel: int = Field(sa_column=Column(BIGINT(unsigned=True))) verification_channel: int = Field(sa_column=Column("VerificationChannel", BIGINT(unsigned=True)))
active: bool = Field(default=True) active: bool = Field(sa_column=Column("Active", BOOLEAN()), default=True)
category_groups: list["CategoryGroup"] = Relationship(back_populates="guild", cascade_delete=True) category_groups: list["CategoryGroup"] = Relationship(back_populates="guild", cascade_delete=True)
@@ -49,19 +49,20 @@ class CategoryGroup(SQLModel, table=True):
__tablename__: str = "CategoryGroups" __tablename__: str = "CategoryGroups"
id: int | None = Field(default=None, primary_key=True) id: int | None = Field(sa_column=Column("GroupId", INTEGER, primary_key=True), default=None)
name: str = Field(max_length=50) name: str = Field(sa_column=Column("GroupName", VARCHAR), max_length=50)
channel_id: int = Field(sa_column=Column(BIGINT(unsigned=True))) channel_id: int = Field("ChannelId", sa_column=Column(BIGINT(unsigned=True)))
guild_id: int = Field( guild_id: int = Field(
sa_column=Column( sa_column=Column(
"GuildId",
BIGINT(unsigned=True), BIGINT(unsigned=True),
ForeignKey("Guilds.id", ondelete="CASCADE"), ForeignKey("Guilds.GuildId", ondelete="CASCADE"),
nullable=False, nullable=False,
) )
) )
message_id: int = Field(sa_column=Column(BIGINT(unsigned=True))) message_id: int = Field(sa_column=Column("MessageId", BIGINT(unsigned=True)))
pad_length: int = Field(default=12, sa_column=Column(SMALLINT(unsigned=True))) pad_length: int = Field(default=12, sa_column=Column("PadLength", SMALLINT(unsigned=True)))
username_length: int = Field(default=12, sa_column=Column(SMALLINT(unsigned=True))) username_length: int = Field(default=12, sa_column=Column("UsernameLength", SMALLINT(unsigned=True)))
__table_args__ = (UniqueConstraint("guild_id", "name", name="UniqueGuildCategoryGroup"),) __table_args__ = (UniqueConstraint("guild_id", "name", name="UniqueGuildCategoryGroup"),)
@@ -91,19 +92,20 @@ class Category(SQLModel, table=True):
__tablename__: str = "Categories" __tablename__: str = "Categories"
id: int = Field(default=None, primary_key=True) id: int = Field(sa_column=Column("CategoryId", INTEGER, primary_key=True), default=None)
name: str = Field(max_length=30) name: str = Field(sa_column=Column("CategoryName", VARCHAR), max_length=30)
group_id: int = Field( group_id: int = Field(
sa_column=Column( sa_column=Column(
"GroupId",
INTEGER(unsigned=True), INTEGER(unsigned=True),
ForeignKey("CategoryGroups.id", ondelete="CASCADE"), ForeignKey("CategoryGroups.GroupId", ondelete="CASCADE"),
nullable=False, nullable=False,
) )
) )
size: int = Field(sa_column=Column(SMALLINT(unsigned=True), default=3, nullable=False)) size: int = Field(sa_column=Column("Size", SMALLINT(unsigned=True), nullable=False), default=3)
is_ascending: bool = Field(default=True, nullable=False) is_ascending: bool = Field(sa_column=Column("IsAscending", nullable=False), default=True)
is_time_record: bool = Field(default=False, nullable=False) is_time_record: bool = Field(sa_column=Column("IsTimeRecord", nullable=False), default=False)
is_validated: bool = Field(default=True, nullable=False) is_validated: bool = Field(sa_column=Column("IsValidated", nullable=False), default=True)
__table_args__ = (UniqueConstraint("group_id", "name", name="UniqueCategoryInGroup"),) __table_args__ = (UniqueConstraint("group_id", "name", name="UniqueCategoryInGroup"),)
@@ -126,12 +128,13 @@ class Score(SQLModel, table=True):
__tablename__: str = "Scores" __tablename__: str = "Scores"
username: str = Field(max_length=30, nullable=False, primary_key=True) username: str = Field(sa_column=Column("UserName", VARCHAR, primary_key=True, nullable=False), max_length=30)
score: float = Field(nullable=False) score: float = Field(sa_column=Column("Score", FLOAT, nullable=False))
category_id: int = Field( category_id: int = Field(
sa_column=Column( sa_column=Column(
"CategoryId",
INTEGER(unsigned=True), INTEGER(unsigned=True),
ForeignKey("Categories.id", ondelete="CASCADE"), ForeignKey("Categories.CategoryId", ondelete="CASCADE"),
nullable=False, nullable=False,
primary_key=True, primary_key=True,
), ),
@@ -158,6 +161,7 @@ class Submission(SQLModel, table=True):
category_id: int = Field( category_id: int = Field(
sa_column=Column( sa_column=Column(
"CategoryId",
INTEGER(unsigned=True), INTEGER(unsigned=True),
nullable=False, nullable=False,
primary_key=True, primary_key=True,
@@ -165,13 +169,14 @@ class Submission(SQLModel, table=True):
) )
group_id: int = Field( group_id: int = Field(
sa_column=Column( sa_column=Column(
"GroupId",
INTEGER(unsigned=True), INTEGER(unsigned=True),
nullable=False, nullable=False,
) )
) )
guild_id: int = Field(sa_column=Column(BIGINT(unsigned=True), nullable=False)) guild_id: int = Field(sa_column=Column("GuildId", BIGINT(unsigned=True), nullable=False))
message_id: int = Field(sa_column=Column(BIGINT(unsigned=True), nullable=False)) message_id: int = Field(sa_column=Column("MessageId", BIGINT(unsigned=True), nullable=False))
# Score is stored as a string until converted during submission. # Score is stored as a string until converted during submission.
score: str = Field(max_length=30, nullable=False) score: str = Field(sa_column=Column("Score", VARCHAR, nullable=False), max_length=30)
user_id: int = Field(sa_column=Column(BIGINT(unsigned=True), nullable=False)) user_id: int = Field(sa_column=Column("UserId", BIGINT(unsigned=True), nullable=False))
username: str = Field(max_length=30, nullable=False, primary_key=True) username: str = Field(sa_column=Column("UserName", VARCHAR, nullable=False, primary_key=True), max_length=30)