46 lines
1.7 KiB
Python
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()
|