Files
social-app/backend/alembic/versions/20260313_0001_inbox_message_content_jsonb.py
T
qzl a10a2db27a feat: 添加视觉设计语言系统并重构认证页面UI
- 新增 visual_design_language.md 设计规范文档
- 新增 auth 设计 tokens (authBackground, authCard, authInput, feedback 系列等)
- 重构登录/注册/验证码/重置密码页面为新设计系统
- 新增 AuthHeroHeader, AuthSurfaceCard, AuthSection, AuthField, PasswordField 组件
- 重构 AppBanner 和 Toast 支持多类型配置 (info/success/warning/error)
- 后端 AgentScope: 重整 schemas/prompts/tools 作用域, 新增协议文档
- 更新 AGENTS.md 集成视觉设计语言约束
2026-03-13 14:10:13 +08:00

67 lines
1.7 KiB
Python

"""Convert inbox_messages.content from text to jsonb and migrate existing data.
Revision ID: 20260313_0001
Revises: 202603060002
Create Date: 2026-03-13 12:00:00
"""
from __future__ import annotations
from typing import Sequence
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects.postgresql import JSONB
revision: str = "20260313_0001"
down_revision: str = "202603060002"
branch_labels: Sequence[str] | None = None
depends_on: Sequence[str] | None = None
def upgrade() -> None:
op.execute("""
UPDATE inbox_messages
SET content = (
CASE
WHEN message_type = 'friend_request' AND content IS NOT NULL THEN
jsonb_build_object('type', 'request', 'message', content)
WHEN message_type = 'calendar' AND content IS NOT NULL THEN
content::jsonb
ELSE NULL
END
)
WHERE content IS NOT NULL
""")
op.alter_column(
"inbox_messages",
"content",
existing_type=sa.Text(),
type_=JSONB(),
postgresql_using="content::jsonb",
)
def downgrade() -> None:
op.execute("""
UPDATE inbox_messages
SET content = (
CASE
WHEN message_type = 'friend_request' AND content IS NOT NULL THEN
content->>'message'
WHEN message_type = 'calendar' AND content IS NOT NULL THEN
content::text
ELSE NULL
END
)
WHERE content IS NOT NULL
""")
op.alter_column(
"inbox_messages",
"content",
existing_type=JSONB(),
type_=sa.Text(),
postgresql_using="content::text",
)