1+ """添加小说封面生成配置
2+
3+ Revision ID: 8e3ac0236b27
4+ Revises: d4d253e3f4c6
5+ Create Date: 2026-03-16 10:56:31.489936
6+
7+ """
8+ from typing import Sequence , Union
9+
10+ from alembic import op
11+ import sqlalchemy as sa
12+
13+
14+ # revision identifiers, used by Alembic.
15+ revision : str = '8e3ac0236b27'
16+ down_revision : Union [str , None ] = 'd4d253e3f4c6'
17+ branch_labels : Union [str , Sequence [str ], None ] = None
18+ depends_on : Union [str , Sequence [str ], None ] = None
19+
20+
21+ def upgrade () -> None :
22+ # ### commands auto generated by Alembic - please adjust! ###
23+ op .add_column ('projects' , sa .Column ('cover_image_url' , sa .String (length = 1000 ), nullable = True , comment = '封面图片访问地址' ))
24+ op .add_column ('projects' , sa .Column ('cover_prompt' , sa .Text (), nullable = True , comment = '最近一次生成封面使用的提示词' ))
25+ op .add_column ('projects' , sa .Column ('cover_status' , sa .String (length = 20 ), nullable = False , server_default = 'none' , comment = '封面状态: none/generating/ready/failed' ))
26+ op .add_column ('projects' , sa .Column ('cover_error' , sa .Text (), nullable = True , comment = '最近一次封面生成失败原因' ))
27+ op .add_column ('projects' , sa .Column ('cover_updated_at' , sa .DateTime (), nullable = True , comment = '最近一次封面生成成功时间' ))
28+ op .add_column ('settings' , sa .Column ('cover_api_provider' , sa .String (length = 50 ), nullable = True , comment = '封面图片API提供商' ))
29+ op .add_column ('settings' , sa .Column ('cover_api_key' , sa .String (length = 500 ), nullable = True , comment = '封面图片API密钥' ))
30+ op .add_column ('settings' , sa .Column ('cover_api_base_url' , sa .String (length = 500 ), nullable = True , comment = '封面图片自定义API地址' ))
31+ op .add_column ('settings' , sa .Column ('cover_image_model' , sa .String (length = 100 ), nullable = True , comment = '封面图片模型名称' ))
32+ op .add_column ('settings' , sa .Column ('cover_enabled' , sa .Boolean (), nullable = False , server_default = sa .text ('false' ), comment = '是否启用封面图片生成' ))
33+ # ### end Alembic commands ###
34+
35+
36+ def downgrade () -> None :
37+ # ### commands auto generated by Alembic - please adjust! ###
38+ op .drop_column ('settings' , 'cover_enabled' )
39+ op .drop_column ('settings' , 'cover_image_model' )
40+ op .drop_column ('settings' , 'cover_api_base_url' )
41+ op .drop_column ('settings' , 'cover_api_key' )
42+ op .drop_column ('settings' , 'cover_api_provider' )
43+ op .drop_column ('projects' , 'cover_updated_at' )
44+ op .drop_column ('projects' , 'cover_error' )
45+ op .drop_column ('projects' , 'cover_status' )
46+ op .drop_column ('projects' , 'cover_prompt' )
47+ op .drop_column ('projects' , 'cover_image_url' )
48+ # ### end Alembic commands ###
0 commit comments