From d21606c7c235569d472794a3602b2a6fab174eba Mon Sep 17 00:00:00 2001 From: livindra Date: Sun, 31 May 2026 15:36:19 +0700 Subject: [PATCH] MYSQL_HOST --- app.py | 1 - utils/mysql_db.py | 21 ++++++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/app.py b/app.py index 1e1ee5b..7577d18 100644 --- a/app.py +++ b/app.py @@ -21,7 +21,6 @@ ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'bmp'} BASE_DIR = os.path.dirname(os.path.abspath(__file__)) - app = Flask(__name__, template_folder=os.path.join(BASE_DIR, 'templates'), static_folder=os.path.join(BASE_DIR, 'static')) diff --git a/utils/mysql_db.py b/utils/mysql_db.py index c4d9c52..3c9a269 100644 --- a/utils/mysql_db.py +++ b/utils/mysql_db.py @@ -20,6 +20,15 @@ TZ_INDONESIA = pytz.timezone('Asia/Jakarta') DATABASE_URL = os.environ.get('DATABASE_URL') +def _env(*names): + """Return the first non-empty environment variable from a list of names.""" + for name in names: + value = os.environ.get(name) + if value not in (None, ''): + return value + return None + + def _build_database_uri(): """Build a SQLAlchemy database URI from Railway or local environment variables. @@ -28,11 +37,13 @@ def _build_database_uri(): MYSQLPASSWORD, MYSQLDATABASE) — most reliable when set via Railway reference vars. 2. DATABASE_URL — used as a fallback if the individual variables are absent. """ - mysql_host = os.environ.get('MYSQLHOST') - mysql_port = os.environ.get('MYSQLPORT') - mysql_user = os.environ.get('MYSQLUSER') - mysql_password = os.environ.get('MYSQLPASSWORD') # may be empty string — that is valid - mysql_database = os.environ.get('MYSQLDATABASE') + mysql_host = _env('MYSQLHOST', 'MYSQL_HOST') + mysql_port = _env('MYSQLPORT', 'MYSQL_PORT') + mysql_user = _env('MYSQLUSER', 'MYSQL_USER') + mysql_password = os.environ.get('MYSQLPASSWORD') + if mysql_password is None: + mysql_password = os.environ.get('MYSQL_PASSWORD') + mysql_database = _env('MYSQLDATABASE', 'MYSQL_DATABASE') if mysql_host and mysql_user and mysql_database: db_port = mysql_port or '3306'