将 postgresql_info.py 移出 native/,合并到 core/config.py 或 infra/db/,便于后续项目环境变量读取发生变化

This commit is contained in:
2026-03-09 14:41:50 +08:00
parent 20ab08e206
commit ed1eb74cfb
12 changed files with 45 additions and 46 deletions
+35
View File
@@ -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