将 postgresql_info.py 移出 native/,合并到 core/config.py 或 infra/db/,便于后续项目环境变量读取发生变化
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
from pathlib import Path
|
||||
from typing import Optional
|
||||
from urllib.parse import quote_plus
|
||||
from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||
|
||||
@@ -80,3 +81,37 @@ class Settings(BaseSettings):
|
||||
|
||||
|
||||
settings = Settings()
|
||||
|
||||
|
||||
def get_pgconn_string(
|
||||
db_name: Optional[str] = None,
|
||||
db_host: Optional[str] = None,
|
||||
db_port: Optional[str] = None,
|
||||
db_user: Optional[str] = None,
|
||||
db_password: Optional[str] = None,
|
||||
) -> str:
|
||||
"""Return PostgreSQL connection string in psycopg conninfo format."""
|
||||
resolved_db_name = db_name or settings.DB_NAME
|
||||
resolved_db_host = db_host or settings.DB_HOST
|
||||
resolved_db_port = db_port or settings.DB_PORT
|
||||
resolved_db_user = db_user or settings.DB_USER
|
||||
resolved_db_password = db_password or settings.DB_PASSWORD
|
||||
return (
|
||||
f"dbname={resolved_db_name} host={resolved_db_host} port={resolved_db_port} "
|
||||
f"user={resolved_db_user} password={resolved_db_password}"
|
||||
)
|
||||
|
||||
|
||||
def get_pg_config() -> dict:
|
||||
"""Return PostgreSQL configuration except password."""
|
||||
return {
|
||||
"name": settings.DB_NAME,
|
||||
"host": settings.DB_HOST,
|
||||
"port": settings.DB_PORT,
|
||||
"user": settings.DB_USER,
|
||||
}
|
||||
|
||||
|
||||
def get_pg_password() -> str:
|
||||
"""Return PostgreSQL password (use with care)."""
|
||||
return settings.DB_PASSWORD
|
||||
|
||||
Reference in New Issue
Block a user