1234
This commit is contained in:
32
server/api-data-base/data_base/config.py
Normal file
32
server/api-data-base/data_base/config.py
Normal file
@@ -0,0 +1,32 @@
|
||||
from pydantic.generics import GenericModel
|
||||
import re
|
||||
|
||||
class Settings(GenericModel):
|
||||
DB_HOST: str = "postgres"#"postgres"
|
||||
DB_PORT: int = 5432
|
||||
DB_USER: str = "tester"
|
||||
DB_PASS: str = "tester"
|
||||
DB_NAME: str = "test"
|
||||
|
||||
@classmethod
|
||||
def validate_db_port(cls, v):
|
||||
# Проверка и преобразование DB_PORT
|
||||
if isinstance(v, str):
|
||||
# Используем регулярное выражение для извлечения целого числа
|
||||
match = re.search(r'\d+', v)
|
||||
if match:
|
||||
return int(match.group())
|
||||
else:
|
||||
raise ValueError(f"Invalid DB_PORT value: {v}")
|
||||
return v
|
||||
|
||||
@property
|
||||
def DATABASE_URL_asyncpg(self) -> str:
|
||||
return f"postgresql+asyncpg://{self.DB_USER}:{self.DB_PASS}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}"
|
||||
|
||||
@property
|
||||
def DATABASE_URL_syncpg(self) -> str:
|
||||
return f"postgresql+psycopg2://{self.DB_USER}:{self.DB_PASS}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}"
|
||||
|
||||
# Загрузка настроек из файла .env
|
||||
settings = Settings()
|
||||
Reference in New Issue
Block a user