mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-02-02 18:22:39 +08:00
40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
from alembic.command import upgrade
|
|
from alembic.config import Config
|
|
|
|
from app.core.config import settings
|
|
from app.db import Engine, Base
|
|
from app.log import logger
|
|
|
|
|
|
def init_db():
|
|
"""
|
|
初始化数据库
|
|
"""
|
|
# 全量建表
|
|
Base.metadata.create_all(bind=Engine) # noqa
|
|
|
|
|
|
def update_db():
|
|
"""
|
|
更新数据库
|
|
"""
|
|
script_location = settings.ROOT_PATH / 'database'
|
|
try:
|
|
alembic_cfg = Config()
|
|
alembic_cfg.set_main_option('script_location', str(script_location))
|
|
|
|
# 根据数据库类型设置不同的URL
|
|
if settings.DB_TYPE.lower() == "postgresql":
|
|
if settings.DB_POSTGRESQL_PASSWORD:
|
|
db_url = f"postgresql://{settings.DB_POSTGRESQL_USERNAME}:{settings.DB_POSTGRESQL_PASSWORD}@{settings.DB_POSTGRESQL_HOST}:{settings.DB_POSTGRESQL_PORT}/{settings.DB_POSTGRESQL_DATABASE}"
|
|
else:
|
|
db_url = f"postgresql://{settings.DB_POSTGRESQL_USERNAME}@{settings.DB_POSTGRESQL_HOST}:{settings.DB_POSTGRESQL_PORT}/{settings.DB_POSTGRESQL_DATABASE}"
|
|
else:
|
|
db_location = settings.CONFIG_PATH / 'user.db'
|
|
db_url = f"sqlite:///{db_location}"
|
|
|
|
alembic_cfg.set_main_option('sqlalchemy.url', db_url)
|
|
upgrade(alembic_cfg, 'head')
|
|
except Exception as e:
|
|
logger.error(f'数据库更新失败:{str(e)}')
|