Arch changes and feature flags
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
from logging.config import fileConfig
|
||||
import os
|
||||
|
||||
from sqlalchemy import engine_from_config
|
||||
from sqlalchemy import pool
|
||||
@@ -19,6 +20,25 @@ if config.config_file_name is not None:
|
||||
from app.models.models import Base
|
||||
target_metadata = Base.metadata
|
||||
|
||||
# Set database URL from environment variables if available
|
||||
def get_database_url():
|
||||
"""Get database URL from environment variables or config"""
|
||||
# Try to get from environment variables first
|
||||
db_host = os.getenv("DATABASE_HOST")
|
||||
db_port = os.getenv("DATABASE_PORT", "3306")
|
||||
db_user = os.getenv("DATABASE_USER")
|
||||
db_password = os.getenv("DATABASE_PASSWORD")
|
||||
db_name = os.getenv("DATABASE_NAME")
|
||||
|
||||
if all([db_host, db_user, db_password, db_name]):
|
||||
return f"mysql+pymysql://{db_user}:{db_password}@{db_host}:{db_port}/{db_name}"
|
||||
|
||||
# Fallback to config file
|
||||
return config.get_main_option("sqlalchemy.url")
|
||||
|
||||
# Set the database URL
|
||||
config.set_main_option("sqlalchemy.url", get_database_url())
|
||||
|
||||
# other values from the config, defined by the needs of env.py,
|
||||
# can be acquired:
|
||||
# my_important_option = config.get_main_option("my_important_option")
|
||||
@@ -37,7 +57,7 @@ def run_migrations_offline() -> None:
|
||||
script output.
|
||||
|
||||
"""
|
||||
url = config.get_main_option("sqlalchemy.url")
|
||||
url = get_database_url()
|
||||
context.configure(
|
||||
url=url,
|
||||
target_metadata=target_metadata,
|
||||
|
||||
Reference in New Issue
Block a user