modify scripts

This commit is contained in:
2025-11-10 11:45:01 +08:00
parent 1582c140bf
commit 28124c1bff
2 changed files with 21 additions and 5 deletions

View File

@ -56,6 +56,15 @@ from sqlalchemy import create_engine
from models.resources import ResourceBase
target_metadata = ResourceBase.metadata # 关联 MySQL 模型的元数据
def get_mysql_url():
evn = os.environ.get('DB_ENV', 'dev')
if evn.lower() == 'dev':
return "mysql+pymysql://root:mysqlpw@testdb:3306/resources"
elif evn.lower() == 'nas':
return "mysql+pymysql://root:root@mariadb:3306/resources"
else:
return "mysql+pymysql://root:mysqlpw@testdb:3306/resources"
def run_migrations_online() -> None:
"""Run migrations in 'online' mode.
@ -67,7 +76,7 @@ def run_migrations_online() -> None:
#ini_section = config.get_section_option(config.config_ini_section, "ini_section", fallback="dev")
#url = config.get_section_option(ini_section, "sqlalchemy.url")
#connectable = create_engine(url)
url = "mysql+pymysql://root:mysqlpw@testdb:3306/resources"
url = get_mysql_url()
connectable = create_engine(url)
with connectable.connect() as connection:

View File

@ -16,6 +16,15 @@ from sqlalchemy.exc import SQLAlchemyError
# 注册器字典
mysql_handler_registry = {}
def get_mysql_url():
evn = os.environ.get('DB_ENV', 'dev')
if evn.lower() == 'dev':
return "mysql+pymysql://root:mysqlpw@testdb:3306/resources"
elif evn.lower() == 'nas':
return "mysql+pymysql://root:root@mariadb:3306/resources"
else:
return "mysql+pymysql://root:mysqlpw@testdb:3306/resources"
# 单例元类
class SingletonMeta(type):
_instances = {} # 存储每个类的唯一实例
@ -30,10 +39,8 @@ class SingletonMeta(type):
class BaseMysqlHandler(metaclass=SingletonMeta):
def __init__(self, db_url: Optional[str] = None):
# 默认 MySQL 连接地址(从环境变量或配置文件读取更灵活)
self.db_url = db_url or os.getenv(
"MYSQL_RESOURCES_URL",
"mysql+pymysql://root:mysqlpw@testdb:3306/resources?charset=utf8mb4"
)
self.db_url = db_url or get_mysql_url()
# 初始化引擎和会话
self.engine = create_engine(self.db_url)
self.Session = sessionmaker(bind=self.engine)