46 lines
1.7 KiB
Python
46 lines
1.7 KiB
Python
"""store business time in beijing timezone
|
|
|
|
Revision ID: 202607081530
|
|
Revises: 202607080900
|
|
Create Date: 2026-07-08 15:30:00
|
|
"""
|
|
|
|
from typing import Sequence, Union
|
|
|
|
from alembic import op
|
|
|
|
revision: str = "202607081530"
|
|
down_revision: Union[str, None] = "202607080900"
|
|
branch_labels: Union[str, Sequence[str], None] = None
|
|
depends_on: Union[str, Sequence[str], None] = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
# 历史数据由UTC换算为北京时间,后续新数据由业务层直接写入北京时间。
|
|
op.execute("UPDATE agent_runs SET started_at = DATE_ADD(started_at, INTERVAL 8 HOUR)")
|
|
op.execute(
|
|
"UPDATE agent_runs SET finished_at = DATE_ADD(finished_at, INTERVAL 8 HOUR) "
|
|
"WHERE finished_at IS NOT NULL"
|
|
)
|
|
op.execute("UPDATE reports SET created_at = DATE_ADD(created_at, INTERVAL 8 HOUR)")
|
|
op.execute("UPDATE signals SET created_at = DATE_ADD(created_at, INTERVAL 8 HOUR)")
|
|
op.execute(
|
|
"UPDATE signals SET published_at = DATE_ADD(published_at, INTERVAL 8 HOUR) "
|
|
"WHERE published_at IS NOT NULL"
|
|
)
|
|
|
|
|
|
def downgrade() -> None:
|
|
# 回滚时恢复迁移前的UTC记录值,便于迁移链保持可逆。
|
|
op.execute("UPDATE agent_runs SET started_at = DATE_SUB(started_at, INTERVAL 8 HOUR)")
|
|
op.execute(
|
|
"UPDATE agent_runs SET finished_at = DATE_SUB(finished_at, INTERVAL 8 HOUR) "
|
|
"WHERE finished_at IS NOT NULL"
|
|
)
|
|
op.execute("UPDATE reports SET created_at = DATE_SUB(created_at, INTERVAL 8 HOUR)")
|
|
op.execute("UPDATE signals SET created_at = DATE_SUB(created_at, INTERVAL 8 HOUR)")
|
|
op.execute(
|
|
"UPDATE signals SET published_at = DATE_SUB(published_at, INTERVAL 8 HOUR) "
|
|
"WHERE published_at IS NOT NULL"
|
|
)
|