mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-21 04:46:26 +00:00
feat(数据库配置): 添加PostgreSQL支持并更新相关配置
- 在.env.dev和.env.prod中添加PostgreSQL配置项 - 更新setting.py以支持PostgreSQL数据库连接 - 在DB_URI和DATABASES_URI方法中添加PostgreSQL处理逻辑 - 补充constant.py中的常量注释
This commit is contained in:
@@ -109,6 +109,13 @@ class Settings(BaseSettings):
|
||||
MYSQL_PORT: int
|
||||
MYSQL_DB_NAME: str
|
||||
|
||||
# PostgreSQL数据库连接
|
||||
POSTGRESQL_USER: str
|
||||
POSTGRESQL_PASSWORD: str
|
||||
POSTGRESQL_HOST: str
|
||||
POSTGRESQL_PORT: int
|
||||
POSTGRESQL_DB_NAME: str
|
||||
|
||||
# ================================================= #
|
||||
# ******************** MongoDB配置 ******************* #
|
||||
# ================================================= #
|
||||
@@ -255,30 +262,40 @@ class Settings(BaseSettings):
|
||||
@property
|
||||
def DB_URI(self) -> str:
|
||||
"""获取数据库连接"""
|
||||
supported_db_drivers = ("sqlite", "mysql")
|
||||
|
||||
supported_db_drivers = ("sqlite", "mysql", "postgresql")
|
||||
if settings.DB_DRIVER not in supported_db_drivers:
|
||||
raise ValueError(f"数据库驱动不支持: {settings.DB_DRIVER}, 请选择 {supported_db_drivers}")
|
||||
if settings.DB_DRIVER == "mysql":
|
||||
MYSQL_URI: MySQLDsn = f"mysql+asyncmy://{settings.MYSQL_USER}:{settings.MYSQL_PASSWORD}@{settings.MYSQL_HOST}:{settings.MYSQL_PORT}/{settings.MYSQL_DB_NAME}?charset=utf8mb4"
|
||||
return MYSQL_URI
|
||||
else:
|
||||
elif settings.DB_DRIVER == "sqlite":
|
||||
SQLITE_URI: str = f"sqlite+aiosqlite:///{settings.BASE_DIR.joinpath(settings.SQLITE_DB_NAME)}?characterEncoding=UTF-8"
|
||||
return SQLITE_URI
|
||||
|
||||
elif settings.DB_DRIVER == "postgresql":
|
||||
POSRGRES_URI: PostgresDsn = f"postgresql+asyncpg://{settings.POSTGRESQL_USER}:{settings.POSTGRESQL_PASSWORD}@{settings.POSTGRESQL_HOST}:{settings.POSTGRESQL_PORT}/{settings.POSTGRESQL_DB_NAME}"
|
||||
return POSRGRES_URI
|
||||
else:
|
||||
raise ValueError(f"数据库驱动不支持: {settings.DB_DRIVER}, 请选择 {supported_db_drivers}")
|
||||
|
||||
|
||||
@property
|
||||
def DATABASES_URI(self) -> str:
|
||||
"""获取数据库连接"""
|
||||
supported_db_drivers = ("sqlite", "mysql")
|
||||
supported_db_drivers = ("sqlite", "mysql", "postgresql")
|
||||
if settings.DB_DRIVER not in supported_db_drivers:
|
||||
raise ValueError(f"数据库驱动不支持: {settings.DB_DRIVER}, 请选择 {supported_db_drivers}")
|
||||
if settings.DB_DRIVER == "mysql":
|
||||
MYSQL_URI: MySQLDsn = f"mysql+pymysql://{settings.MYSQL_USER}:{settings.MYSQL_PASSWORD}@{settings.MYSQL_HOST}:{settings.MYSQL_PORT}/{settings.MYSQL_DB_NAME}?charset=utf8mb4"
|
||||
return MYSQL_URI
|
||||
else:
|
||||
elif settings.DB_DRIVER == "postgresql":
|
||||
POSRGRES_URI: PostgresDsn = f"postgresql://{settings.POSTGRESQL_USER}:{settings.POSTGRESQL_PASSWORD}@{settings.POSTGRESQL_HOST}:{settings.POSTGRESQL_PORT}/{settings.POSTGRESQL_DB_NAME}"
|
||||
return POSRGRES_URI
|
||||
elif settings.DB_DRIVER == "sqlite":
|
||||
SQLITE_URI: str = f"sqlite:///{settings.BASE_DIR.joinpath(settings.SQLITE_DB_NAME)}?characterEncoding=UTF-8"
|
||||
return SQLITE_URI
|
||||
else:
|
||||
raise ValueError(f"数据库驱动不支持: {settings.DB_DRIVER}, 请选择 {supported_db_drivers}")
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user