database.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. from urllib.parse import quote_plus as urlquote
  2. from pydantic.v1 import BaseSettings
  3. class Settings(BaseSettings):
  4. """mysql db"""
  5. DB_HOST: str = "127.0.0.1"
  6. DB_PORT: int = 3306
  7. DB_DATABASE: str = "open_assistant"
  8. DB_USER: str = "root"
  9. DB_PASSWORD: str = "123456"
  10. DB_POOL_SIZE: int = 20
  11. DB_POOL_RECYCLE: int = 3600
  12. DB_OVERLOW: int = 10000
  13. @property
  14. def database_url(self):
  15. return f"mysql+pymysql://{self.DB_USER}:{urlquote(self.DB_PASSWORD)}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_DATABASE}"
  16. @property
  17. def async_database_url(self):
  18. return f"mysql+aiomysql://{self.DB_USER}:{urlquote(self.DB_PASSWORD)}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_DATABASE}"
  19. class Config:
  20. env_file = ".env"
  21. class RedisSettings(BaseSettings):
  22. """redis"""
  23. REDIS_HOST: str = "localhost"
  24. REDIS_PORT: int = 6379
  25. REDIS_DB: int = 0
  26. REDIS_PASSWORD: str = None
  27. class Config:
  28. env_file = ".env"
  29. db_settings = Settings()
  30. redis_settings = RedisSettings()