fix: v3.0.1 - 修复5个代码问题
修复内容: 1. Collection 模型唯一约束逻辑错误 - 修改约束从 (user_id, site_id, folder_id) 到 (user_id, site_id) - 防止用户多次收藏同一网站 2. 用户注册重复提交数据库 - 优化为只提交一次数据库操作 - 提升注册性能 3. JavaScript 未使用的变量 - 删除 updateCollectButton() 中未使用的 icon 变量 4. 文件夹计数逻辑缺失 - 为每个文件夹添加收藏数量计算 - 修复收藏列表页面显示 5. JavaScript 错误处理不完善 - 所有 fetch 调用添加 HTTP 状态码检查 - 改进网络错误提示 新增文件: - fix_collection_constraint.py - 数据库约束修复脚本 - BUGFIX_v3.0.1.md - 详细修复记录 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
48
fix_collection_constraint.py
Normal file
48
fix_collection_constraint.py
Normal file
@@ -0,0 +1,48 @@
|
||||
"""
|
||||
数据库修复脚本:修复 Collection 表的唯一约束
|
||||
运行方式:python fix_collection_constraint.py
|
||||
"""
|
||||
|
||||
import os
|
||||
from app import create_app
|
||||
from models import db
|
||||
|
||||
def fix_collection_constraint():
|
||||
"""修复 Collection 表的唯一约束"""
|
||||
app = create_app(os.getenv('FLASK_ENV', 'development'))
|
||||
|
||||
with app.app_context():
|
||||
print("开始修复 Collection 表的唯一约束...")
|
||||
|
||||
try:
|
||||
# 删除旧的唯一约束
|
||||
print("1. 删除旧的唯一约束 unique_user_site_folder...")
|
||||
db.engine.execute(
|
||||
"ALTER TABLE collections DROP INDEX unique_user_site_folder"
|
||||
)
|
||||
print(" ✓ 旧约束已删除")
|
||||
|
||||
# 添加新的唯一约束
|
||||
print("2. 添加新的唯一约束 unique_user_site...")
|
||||
db.engine.execute(
|
||||
"ALTER TABLE collections ADD CONSTRAINT unique_user_site UNIQUE (user_id, site_id)"
|
||||
)
|
||||
print(" ✓ 新约束已添加")
|
||||
|
||||
print("\n✅ 修复完成!")
|
||||
print("\n说明:")
|
||||
print("- 旧约束:(user_id, site_id, folder_id) - 允许重复收藏到未分类")
|
||||
print("- 新约束:(user_id, site_id) - 每个用户只能收藏一次同一个网站")
|
||||
|
||||
except Exception as e:
|
||||
print(f"\n❌ 修复失败: {str(e)}")
|
||||
print("\n可能的原因:")
|
||||
print("1. 约束名称不匹配(MySQL/SQLite 差异)")
|
||||
print("2. 数据库中已存在重复数据")
|
||||
print("3. 数据库权限不足")
|
||||
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
if __name__ == '__main__':
|
||||
fix_collection_constraint()
|
||||
Reference in New Issue
Block a user