| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- """数据库连接配置 —— 所有存储引擎配置模型
- 每个具体配置类通过 env_prefix 从环境变量读取敏感信息。
- 默认值仅包含安全的占位值,生产凭证必须通过环境变量注入。
- """
- from pydantic_settings import BaseSettings, SettingsConfigDict
- class DatabaseConfig(BaseSettings):
- """数据库连接配置基类
- 通过 backend 字段指定存储引擎类型:
- - "mysql" / "" → MySQLBackend
- - "postgresql" → PgBackend
- - "milvus" → MilvusBackend
- - "redis" → RedisBackend
- """
- host: str = "127.0.0.1"
- port: int = 3306
- user: str = "root"
- password: str = ""
- db: str = "test"
- charset: str = "utf8mb4"
- minsize: int = 5
- maxsize: int = 20
- backend: str = ""
- model_config = SettingsConfigDict(
- env_prefix="", case_sensitive=False, extra="ignore"
- )
- def to_dict(self) -> dict:
- return {
- "host": self.host,
- "port": self.port,
- "user": self.user,
- "password": self.password,
- "db": self.db,
- "charset": self.charset,
- "minsize": self.minsize,
- "maxsize": self.maxsize,
- }
- # ============ 业务数据库配置 ============
- class AigcDatabaseConfig(DatabaseConfig):
- host: str = "rm-t4na9qj85v7790tf84o.mysql.singapore.rds.aliyuncs.com"
- user: str = "crawler_admin"
- password: str = "cyber#crawler_2023"
- db: str = "aigc-admin-prod"
- model_config = SettingsConfigDict(
- env_prefix="AIGC_DB_", env_file=".env", case_sensitive=False, extra="ignore"
- )
- class LongVideoDatabaseConfig(DatabaseConfig):
- host: str = "rr-bp1x9785e8h5452bi157.mysql.rds.aliyuncs.com"
- user: str = "wx2016_longvideo"
- password: str = "wx2016_longvideoP@assword1234"
- db: str = "longvideo"
- model_config = SettingsConfigDict(
- env_prefix="LONG_VIDEO_DB_",
- env_file=".env",
- case_sensitive=False,
- extra="ignore",
- )
- class LongArticlesDatabaseConfig(DatabaseConfig):
- host: str = "rm-bp14529nwwcw75yr1ko.mysql.rds.aliyuncs.com"
- user: str = "changwen_admin"
- password: str = "changwen@123456"
- db: str = "long_articles"
- model_config = SettingsConfigDict(
- env_prefix="LONG_ARTICLES_DB_",
- env_file=".env",
- case_sensitive=False,
- extra="ignore",
- )
- class PiaoquanCrawlerDatabaseConfig(DatabaseConfig):
- host: str = "rm-bp1159bu17li9hi94.mysql.rds.aliyuncs.com"
- user: str = "crawler"
- password: str = "crawler123456@"
- db: str = "piaoquan-crawler"
- model_config = SettingsConfigDict(
- env_prefix="PIAOQUAN_CRAWLER_DB_",
- env_file=".env",
- case_sensitive=False,
- extra="ignore",
- )
- class GrowthDatabaseConfig(DatabaseConfig):
- host: str = "rm-bp17q95335a99272b.mysql.rds.aliyuncs.com"
- user: str = "crawler"
- password: str = "crawler123456@"
- db: str = "growth"
- model_config = SettingsConfigDict(
- env_prefix="GROWTH_DB_", env_file=".env", case_sensitive=False, extra="ignore"
- )
- class ContentDeconstructionSupplyConfig(DatabaseConfig):
- host: str = "rm-t4nh1xx6o2a6vj8qu3o.mysql.singapore.rds.aliyuncs.com"
- user: str = "content_rw"
- password: str = "bC1aH4bA1lB0"
- db: str = "content-deconstruction-supply"
- model_config = SettingsConfigDict(
- env_prefix="CONTENT_DECONSREUCTION_DB_",
- env_file=".env",
- case_sensitive=False,
- extra="ignore",
- )
- # ============ PostgreSQL / Milvus / Redis 配置 ============
- class PgConfig(BaseSettings):
- """PostgreSQL 连接配置"""
- host: str = "127.0.0.1"
- port: int = 5432
- user: str = "postgres"
- password: str = ""
- db: str = "postgres"
- minsize: int = 5
- maxsize: int = 20
- backend: str = "postgresql"
- model_config = SettingsConfigDict(
- env_prefix="PG_", env_file=".env", case_sensitive=False, extra="ignore"
- )
- class MilvusConfig(BaseSettings):
- """Milvus 向量数据库连接配置"""
- host: str = "127.0.0.1"
- port: int = 19530
- user: str = ""
- password: str = ""
- backend: str = "milvus"
- model_config = SettingsConfigDict(
- env_prefix="MILVUS_", env_file=".env", case_sensitive=False, extra="ignore"
- )
- class RedisConfig(BaseSettings):
- """Redis 连接配置"""
- host: str = "127.0.0.1"
- port: int = 6379
- password: str = ""
- db: int = 0
- backend: str = "redis"
- model_config = SettingsConfigDict(
- env_prefix="REDIS_", env_file=".env", case_sensitive=False, extra="ignore"
- )
|