JhHardwareWRS_BackPoint/scripts/migrate_qrcode_batch_tasks.py
2026-06-24 15:19:14 +08:00

46 lines
1.7 KiB
Python

from pathlib import Path
import sys
from sqlalchemy import text
ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT))
from app.database import engine # noqa: E402
def main() -> None:
with engine.begin() as conn:
conn.execute(
text(
"""
CREATE TABLE IF NOT EXISTS device_qrcode_batch_tasks (
id BIGINT NOT NULL AUTO_INCREMENT,
file_name VARCHAR(255) NOT NULL,
status VARCHAR(32) NOT NULL DEFAULT 'pending',
item_count INT NOT NULL DEFAULT 0,
completed_count INT NOT NULL DEFAULT 0,
failed_count INT NOT NULL DEFAULT 0,
items_json JSON NOT NULL,
zip_url VARCHAR(500) NULL,
error_message VARCHAR(1000) NULL,
created_by VARCHAR(20) NOT NULL,
started_at DATETIME NULL,
finished_at DATETIME NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
KEY idx_device_qrcode_batch_tasks_creator (created_by, created_at),
KEY idx_device_qrcode_batch_tasks_status (status, created_at),
CONSTRAINT fk_device_qrcode_batch_tasks_creator
FOREIGN KEY (created_by) REFERENCES personnel (phone)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
"""
)
)
print("qrcode batch tasks migrated")
if __name__ == "__main__":
main()