Start testing with sqlmodel.

This commit is contained in:
2025-02-27 09:42:49 -05:00
parent c29194a30a
commit de2542ece6
4 changed files with 44 additions and 16 deletions
+1
View File
@@ -135,3 +135,4 @@ deleted_backups/
highscores_data/
TODO.txt
sql_tester.py
database.db
+14
View File
@@ -0,0 +1,14 @@
from sqlmodel import BigInteger, Column, Field, SQLModel, create_engine
class Guilds(SQLModel, table=True):
id: int = Field(sa_column=Column(BigInteger(), primary_key=True))
name: str = Field(max_length=95)
submission_channel: int = Field(sa_column=Column(BigInteger()))
verification_channel: int = Field(sa_column=Column(BigInteger()))
active: bool = Field(default=True)
url = "sqlite:///database.db"
engine = create_engine(url)
SQLModel.metadata.create_all(engine)
+27 -13
View File
@@ -1,18 +1,32 @@
"""Simple file to set up the sqlalchemy connection to database."""
from sqlalchemy import create_engine
from sqlalchemy.ext.automap import automap_base
# from sqlalchemy import create_engine
# from sqlalchemy.ext.automap import automap_base
from sqlmodel import BigInteger, Column, Field, SQLModel, create_engine
from utilities import config
# connect with sql alchemy and autoload schema
url = f"mysql+pymysql://{config.SQL_USER}:{config.SQL_PASS}@{config.SQL_HOST}/{config.SQL_DB}"
engine = create_engine(url)
Base = automap_base()
Base.prepare(autoload_with=engine)
# define the classes
Category = Base.classes.Categories
CategoryGroup = Base.classes.CategoryGroups
Guild = Base.classes.Guilds
Score = Base.classes.Scores
Submission = Base.classes.Submissions
class Guilds(SQLModel, table=True):
id: int = Field(sa_column=Column(BigInteger(), primary_key=True))
name: str
submission_channel: int = Field(sa_column=Column(BigInteger()))
verification_channel: int = Field(sa_column=Column(BigInteger()))
active: bool = Field(default=True)
# connect with sql alchemy and autoload schema
if config.ENVIRONMENT == "prod":
url = f"mysql+pymysql://{config.SQL_USER}:{config.SQL_PASS}@{config.SQL_HOST}/{config.SQL_DB}"
else:
url = "sqlite:///database.db"
engine = create_engine(url)
SQLModel.metadata.create_all(engine)
# Base = automap_base()
# Base.prepare(autoload_with=engine)
# # define the classes
# Category = Base.classes.Categories
# CategoryGroup = Base.classes.CategoryGroups
# Guild = Base.classes.Guilds
# Score = Base.classes.Scores
# Submission = Base.classes.Submissions
+2 -3
View File
@@ -1,6 +1,4 @@
"""
Loads environment variables for use in bot.
"""
"""Loads environment variables for use in bot."""
import os
@@ -15,3 +13,4 @@ SQL_DB = os.getenv("SQL_DB", "")
SQL_HOST = os.getenv("SQL_HOST", "")
SQL_PASS = os.getenv("SQL_PASS", "")
SQL_USER = os.getenv("SQL_USER", "")
ENVIRONMENT: str = os.getenv("ENVIRONMENT", "prod")