File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1010# this is the Alembic Config object, which provides
1111# access to the values within the .ini file in use.
1212config = context .config
13- config .set_main_option (
14- "sqlalchemy.url" ,
15- f"postgresql+psycopg2://{ settings .database_username } :{ settings .database_password } @{ settings .database_hostname } :{ settings .database_port } /{ settings .database_name } " ,
16- )
13+
14+ if settings .database_url :
15+ sqlalchemy_url = settings .database_url
16+ else :
17+ sqlalchemy_url = (
18+ f"postgresql+psycopg2://{ settings .database_username } :"
19+ f"{ settings .database_password } @"
20+ f"{ settings .database_hostname } :"
21+ f"{ settings .database_port } /"
22+ f"{ settings .database_name } "
23+ )
24+
25+ config .set_main_option ("sqlalchemy.url" , sqlalchemy_url )
1726
1827# Interpret the config file for Python logging.
1928# This line sets up loggers basically.
Original file line number Diff line number Diff line change 11import os
22from pydantic_settings import BaseSettings
3+ from typing import Optional
34
45
56class Settings (BaseSettings ):
6- database_username : str
7- database_password : str
8- database_hostname : str
9- database_port : str
10- database_name : str
7+ # Render / production
8+ database_url : Optional [str ] = None
9+
10+ # Local / docker (optional)
11+ database_username : Optional [str ] = None
12+ database_password : Optional [str ] = None
13+ database_hostname : Optional [str ] = None
14+ database_port : Optional [str ] = None
15+ database_name : Optional [str ] = None
16+
1117 secret_key : str
1218 algorithm : str
1319 access_token_expire_minutes : int
Original file line number Diff line number Diff line change 33from sqlalchemy .orm import sessionmaker
44from .config import settings
55
6- SQLALCHEMY_DATABASE_URL = f"postgresql://{ settings .database_username } :{ settings .database_password } @{ settings .database_hostname } :{ settings .database_port } /{ settings .database_name } "
6+ if settings .database_url :
7+ DATABASE_URL = settings .database_url
8+ else :
9+ DATABASE_URL = (
10+ f"postgresql://{ settings .database_username } :"
11+ f"{ settings .database_password } @"
12+ f"{ settings .database_hostname } :"
13+ f"{ settings .database_port } /"
14+ f"{ settings .database_name } "
15+ )
716
8- engine = create_engine (SQLALCHEMY_DATABASE_URL )
17+ if not DATABASE_URL :
18+ raise RuntimeError ("Database configuration is missing" )
19+
20+ engine = create_engine (DATABASE_URL )
921
1022SessionLocal = sessionmaker (autocommit = False , autoflush = False , bind = engine )
1123
You can’t perform that action at this time.
0 commit comments