refactor(database): 重构数据库配置和CRUD逻辑

移除SQLITE_DB_NAME配置,统一使用DATABASE_NAME作为数据库名称
重构CRUD基类,增加out_schema参数用于序列化输出
优化数据库表查询逻辑,支持多种数据库类型
修复序列化工具类的方法签名和实现
This commit is contained in:
zhangtao
2025-10-02 14:06:49 +08:00
parent ef7143b2ae
commit 013ba8074a
14 changed files with 256 additions and 188 deletions
+3 -5
View File
@@ -107,10 +107,8 @@ class Settings(BaseSettings):
# 数据库类型
DATABASE_TYPE: Literal['sqlite','mysql', 'postgresql']
# SQLite数据库连接
SQLITE_DB_NAME: str
# MySQL数据库连接
# MySQL/PostgreSQL/SQLite数据库连接
DATABASE_HOST: str
DATABASE_PORT: int
DATABASE_USER: str
@@ -295,7 +293,7 @@ class Settings(BaseSettings):
elif self.DATABASE_TYPE == "postgresql":
return f"postgresql+asyncpg://{self.DATABASE_USER}:{quote_plus(self.DATABASE_PASSWORD)}@{self.DATABASE_HOST}:{self.DATABASE_PORT}/{self.DATABASE_NAME}"
elif self.DATABASE_TYPE == "sqlite":
return f"sqlite+aiosqlite:///{self.BASE_DIR.joinpath(self.SQLITE_DB_NAME)}?characterEncoding=UTF-8"
return f"sqlite+aiosqlite:///{self.BASE_DIR.joinpath(self.DATABASE_NAME + '.db')}?characterEncoding=UTF-8"
else:
raise ValueError(f"数据库驱动不支持: {self.DATABASE_TYPE}, 请选择 请选择 mysql、postgresql、sqlite")
@@ -307,7 +305,7 @@ class Settings(BaseSettings):
elif self.DATABASE_TYPE == "postgresql":
return f"postgresql+psycopg2://{self.DATABASE_USER}:{quote_plus(self.DATABASE_PASSWORD)}@{self.DATABASE_HOST}:{self.DATABASE_PORT}/{self.DATABASE_NAME}"
elif self.DATABASE_TYPE == "sqlite":
return f"sqlite:///{self.BASE_DIR.joinpath(self.SQLITE_DB_NAME)}?characterEncoding=UTF-8"
return f"sqlite:///{self.BASE_DIR.joinpath(self.DATABASE_NAME + '.db')}?charset=utf8"
else:
raise ValueError(f"数据库驱动不支持: {self.DATABASE_TYPE}, 请选择 mysql、postgresql、sqlite")