mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-02 05:56:47 +08:00
58 lines
1.6 KiB
Python
58 lines
1.6 KiB
Python
"""3.0.4
|
|
新增待整理文件登记表
|
|
|
|
整理队列是纯内存的 queue.Queue,进程重启会让队列里的任务连同「这些文件还没
|
|
整理」这个事实一起蒸发,而已稳定落地的文件不会再产生任何监控事件,等于永久
|
|
漏件。该表只登记「存储 + 源文件路径」这一最小事实,供启动时回放。
|
|
|
|
Revision ID: e3d9f4b7c806
|
|
Revises: 7f5c1d2e3a4b
|
|
Create Date: 2026-08-10
|
|
"""
|
|
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
revision = "e3d9f4b7c806"
|
|
down_revision = "7f5c1d2e3a4b"
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def _has_table(table_name: str) -> bool:
|
|
"""检查数据表是否已存在。"""
|
|
inspector = sa.inspect(op.get_bind())
|
|
return table_name in inspector.get_table_names()
|
|
|
|
|
|
def upgrade() -> None:
|
|
"""
|
|
创建待整理文件登记表。
|
|
"""
|
|
if _has_table("transferpending"):
|
|
return
|
|
op.create_table(
|
|
"transferpending",
|
|
sa.Column("id", sa.Integer, primary_key=True, autoincrement=True),
|
|
sa.Column("storage", sa.String, nullable=False),
|
|
sa.Column("src_path", sa.String, nullable=False),
|
|
sa.Column("created_at", sa.String),
|
|
)
|
|
# 同一个文件重复入队只保留一条,回放时不会重复送入整理链
|
|
op.create_index(
|
|
"ux_transferpending_storage_path",
|
|
"transferpending",
|
|
["storage", "src_path"],
|
|
unique=True,
|
|
)
|
|
|
|
|
|
def downgrade() -> None:
|
|
"""
|
|
删除待整理文件登记表。
|
|
"""
|
|
if not _has_table("transferpending"):
|
|
return
|
|
op.drop_index("ux_transferpending_storage_path", table_name="transferpending")
|
|
op.drop_table("transferpending")
|