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

37 lines
1020 B
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:
result = conn.execute(
text(
"""
UPDATE work_session_devices d
JOIN work_sessions s ON s.id = d.session_id
SET d.released_at = NULL,
d.released_by = NULL,
d.release_reason = NULL
WHERE s.status = 'reporting'
AND d.release_reason IN ('下班释放占用', '历史非活动记录迁移释放占用')
AND NOT EXISTS (
SELECT 1
FROM production_reports r
WHERE r.session_id = s.id
)
"""
)
)
print(f"restored reporting mold locks: {result.rowcount}")
if __name__ == "__main__":
main()