feat(status): default legacy batches to normal
This commit is contained in:
@@ -16,6 +16,8 @@ from .config import make_slug
|
||||
|
||||
|
||||
DEFAULT_BUSY_TIMEOUT_MS = 5000
|
||||
PRODUCT_STATUS_FEATURE_INTRODUCED_AT = "2026-07-18T16:34:37"
|
||||
LEGACY_PRODUCT_STATUS_DEFAULT_NOTE = "历史批次默认按架上商品处理(未实时检测)"
|
||||
VALID_BATCH_FIELDS = {
|
||||
"source_files_json",
|
||||
"status",
|
||||
@@ -493,6 +495,7 @@ def init_db(path=None, conn=None) -> None:
|
||||
_ensure_task_image_task_columns(database)
|
||||
_ensure_task_cover_reset_columns(database)
|
||||
_ensure_task_product_status_columns(database)
|
||||
_migrate_legacy_product_status_defaults(database)
|
||||
_ensure_image_studio_project_suite_columns(database)
|
||||
_ensure_image_studio_project_draft_columns(database)
|
||||
_ensure_image_studio_job_recovery_columns(database)
|
||||
@@ -534,6 +537,32 @@ def _ensure_task_product_status_columns(database):
|
||||
database.execute("ALTER TABLE tasks ADD COLUMN product_status_at TEXT")
|
||||
|
||||
|
||||
def _migrate_legacy_product_status_defaults(database):
|
||||
"""Treat pre-status-feature active batches as historically on-shelf once."""
|
||||
|
||||
database.execute(
|
||||
"""
|
||||
UPDATE tasks
|
||||
SET product_status = 'normal',
|
||||
product_status_note = ?,
|
||||
product_status_at = NULL,
|
||||
updated_at = ?
|
||||
WHERE (product_status IS NULL OR TRIM(product_status) = '')
|
||||
AND batch_id IN (
|
||||
SELECT id
|
||||
FROM batches
|
||||
WHERE deleted_at IS NULL
|
||||
AND created_at < ?
|
||||
)
|
||||
""",
|
||||
(
|
||||
LEGACY_PRODUCT_STATUS_DEFAULT_NOTE,
|
||||
_now(),
|
||||
PRODUCT_STATUS_FEATURE_INTRODUCED_AT,
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
def _ensure_image_studio_project_suite_columns(database):
|
||||
columns = {
|
||||
row["name"]
|
||||
|
||||
Reference in New Issue
Block a user