- 产品编辑入口统一走 ProductFormFull(卖点/风格/人群/品牌词全字段); 修复开任务页 <form> 套 <form> 致"编辑产品"报错、改不了、跳回首个产品 - dashboard 入口卡片对齐实际路由: 系统管理(/config) 与 工作配置(/settings) 分开; settings ?tab=products 直达改用挂载后读 URL, 消除 hydration mismatch - 新增用户管理(users API/admin service/改密页) + alembic 022/023/024 - 上线部署: Dockerfile / docker-compose.prod+https / nginx https / .env.example - A8 三套正交叙事(痛点/场景/成分背书) + beige 调色去AI化 + 飞轮 text_import 高权重信号 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
48 lines
990 B
Python
48 lines
990 B
Python
"""023 benchmark link and screenshot fields use text
|
|
|
|
Revision ID: 023
|
|
Revises: 022
|
|
Create Date: 2026-06-29
|
|
"""
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
revision = "023"
|
|
down_revision = "022"
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade():
|
|
op.alter_column(
|
|
"benchmark_notes",
|
|
"screenshot_url",
|
|
existing_type=sa.String(length=512),
|
|
type_=sa.Text(),
|
|
existing_nullable=True,
|
|
)
|
|
op.alter_column(
|
|
"benchmark_notes",
|
|
"link_url",
|
|
existing_type=sa.String(length=512),
|
|
type_=sa.Text(),
|
|
existing_nullable=True,
|
|
)
|
|
|
|
|
|
def downgrade():
|
|
op.alter_column(
|
|
"benchmark_notes",
|
|
"link_url",
|
|
existing_type=sa.Text(),
|
|
type_=sa.String(length=512),
|
|
existing_nullable=True,
|
|
)
|
|
op.alter_column(
|
|
"benchmark_notes",
|
|
"screenshot_url",
|
|
existing_type=sa.Text(),
|
|
type_=sa.String(length=512),
|
|
existing_nullable=True,
|
|
)
|