diff --git a/ref-test/app/config.py b/ref-test/app/config.py index 6bffff1..a1a5ed0 100644 --- a/ref-test/app/config.py +++ b/ref-test/app/config.py @@ -4,6 +4,7 @@ from dotenv import load_dotenv load_dotenv('../.env') class Config(object): + """Basic App Configuration""" APP_HOST = '0.0.0.0' DATA = './data/' DEBUG = False @@ -11,9 +12,8 @@ class Config(object): SECRET_KEY = os.getenv('SECRET_KEY') SERVER_NAME = os.getenv('SERVER_NAME') SESSION_COOKIE_SECURE = True - SQLALCHEMY_DATABASE_URI = f'sqlite:///{Path(os.path.abspath(f"{DATA}/database.db"))}' - SQLALCHEMY_TRACK_MODIFICATIONS = False + """Email Engine Configuration""" MAIL_SERVER = os.getenv('MAIL_SERVER') MAIL_PORT = int(os.getenv('MAIL_PORT') or 25) MAIL_USE_TLS = False @@ -26,6 +26,19 @@ class Config(object): MAIL_SUPPRESS_SEND = False MAIL_ASCII_ATTACHMENTS = bool(os.getenv('MAIL_ASCII_ATTACHMENTS') or True) + """Database Driver Configuration""" + DATABASE_TYPE = os.getenv('DATABASE_TYPE') or 'SQLite' + SQLALCHEMY_TRACK_MODIFICATIONS = False + + if DATABASE_TYPE.lower() == 'mysql' and os.getenv('MYSQL_DATABASE') and os.getenv('MYSQL_USER') and os.getenv('MYSQL_PASSWORD'): + DATABASE_HOST = os.getenv('DATABASE_HOST') or 'localhost' + DATABASE_PORT = int(os.getenv('DATABASE_PORT') or 3306) + MYSQL_DATABASE = os.getenv('MYSQL_DATABASE') + MYSQL_USER = os.getenv('MYSQL_USER') + MYSQL_PASSWORD = os.getenv('MYSQL_PASSWORD') + SQLALCHEMY_DATABASE_URI = f'mysql+pymysql://{MYSQL_USER}:{MYSQL_PASSWORD}@{DATABASE_HOST}:{DATABASE_PORT}/{MYSQL_DATABASE}' + else: SQLALCHEMY_DATABASE_URI = f'sqlite:///{Path(os.path.abspath(f"{DATA}/database.db"))}' + class Production(Config): pass