33 lines
1000 B
Python
33 lines
1000 B
Python
from sqlalchemy.engine import URL
|
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
SQL_SERVER_HOST: str
|
|
SQL_SERVER_PORT: int = 1433
|
|
SQL_SERVER_DATABASE: str
|
|
SQL_SERVER_USERNAME: str
|
|
SQL_SERVER_PASSWORD: str
|
|
SQL_SERVER_DRIVER: str = "{ODBC Driver 18 for SQL Server}"
|
|
SQL_SERVER_TRUST_SERVER_CERTIFICATE: str = "yes"
|
|
|
|
@property
|
|
def database_url(self) -> URL:
|
|
return URL.create(
|
|
"mssql+pyodbc",
|
|
username=self.SQL_SERVER_USERNAME,
|
|
password=self.SQL_SERVER_PASSWORD,
|
|
host=self.SQL_SERVER_HOST,
|
|
port=self.SQL_SERVER_PORT,
|
|
database=self.SQL_SERVER_DATABASE,
|
|
query={
|
|
"driver": self.SQL_SERVER_DRIVER.strip("{}"),
|
|
"TrustServerCertificate": self.SQL_SERVER_TRUST_SERVER_CERTIFICATE,
|
|
},
|
|
)
|
|
|
|
model_config = SettingsConfigDict(env_file=".env", extra="ignore")
|
|
|
|
|
|
settings = Settings()
|