Skip to content

Commit d22125c

Browse files
committed
Remove type parameter, use Django ENGINE
1 parent d5f3458 commit d22125c

File tree

4 files changed

+13
-9
lines changed

4 files changed

+13
-9
lines changed

dashboard/common/db_util.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,27 @@
1414

1515
from dashboard.models import Course, User
1616

17+
1718
logger = logging.getLogger(__name__)
1819

20+
BACKENDS_PATH = 'django.db.backends.'
21+
1922

20-
class DBParams(TypedDict):
23+
class DjangoDBParams(TypedDict):
24+
ENGINE: Literal['django.db.backends.mysql', 'django.db.backends.postgresql']
2125
NAME: str
2226
USER: str
2327
PASSWORD: str
2428
HOST: str
2529
PORT: int
2630

2731

28-
def create_sqlalchemy_engine(db_params: DBParams, type: Literal['mysql', 'postgres']) -> Engine:
29-
new_db_params: DBParams = db_params.copy()
32+
def create_sqlalchemy_engine(db_params: DjangoDBParams) -> Engine:
33+
new_db_params: DjangoDBParams = db_params.copy()
3034
new_db_params['PASSWORD'] = quote_plus(db_params['PASSWORD'])
3135

3236
core_string = '{USER}:{PASSWORD}@{HOST}:{PORT}/{NAME}'.format(**new_db_params)
33-
if type == 'mysql':
37+
if new_db_params['ENGINE'] == (BACKENDS_PATH + 'mysql'):
3438
return create_engine(f'mysql+mysqldb://{core_string}?charset=utf8mb4')
3539
else:
3640
return create_engine('postgresql://' + core_string)

dashboard/cron.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222

2323
logger = logging.getLogger(__name__)
2424

25-
engine = db_util.create_sqlalchemy_engine(settings.DATABASES['default'], 'mysql')
26-
data_warehouse_engine = db_util.create_sqlalchemy_engine(settings.DATABASES['DATA_WAREHOUSE'], 'postgres')
25+
engine = db_util.create_sqlalchemy_engine(settings.DATABASES['default'])
26+
data_warehouse_engine = db_util.create_sqlalchemy_engine(settings.DATABASES['DATA_WAREHOUSE'])
2727

2828
# Set up queries array from configuration file
2929
CRON_QUERY_FILE = settings.CRON_QUERY_FILE

dashboard/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343

4444
BinningGrade = namedtuple('BinningGrade', ['value', 'index', 'binning_all'])
4545

46-
app_engine = create_sqlalchemy_engine(settings.DATABASES['default'], 'mysql')
46+
app_engine = create_sqlalchemy_engine(settings.DATABASES['default'])
4747

4848

4949
def gpa_map(grade):

scripts/data_validation/validate_udw_vs_udp.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ def main():
8080
ENV_VALIDATION = get_env_file(
8181
os.path.join(os.path.dirname(os.path.abspath('__file__')), 'scripts/data_validation/env_validation.hjson'), 'hjson')
8282

83-
udw_engine = create_sqlalchemy_engine(ENV_UDW['DATA_WAREHOUSE'], 'postgres')
84-
udp_engine = create_sqlalchemy_engine(ENV_UDP['DATA_WAREHOUSE'], 'postgres')
83+
udw_engine = create_sqlalchemy_engine(ENV_UDW['DATA_WAREHOUSE'])
84+
udp_engine = create_sqlalchemy_engine(ENV_UDP['DATA_WAREHOUSE'])
8585

8686
DATA_WAREHOUSE_COURSE_IDS = ENV_VALIDATION["DATA_WAREHOUSE_COURSE_IDS"]
8787

0 commit comments

Comments
 (0)