# -*- coding: utf-8 -*- """ 数据库迁移脚本 V2 添加断点续传支持字段 """ import sqlite3 import logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) def migrate_database(): """执行数据库迁移""" db_path = "data/baijiahao.db" logger.info("=" * 50) logger.info("开始数据库迁移 V2...") logger.info("=" * 50) conn = sqlite3.connect(db_path) cursor = conn.cursor() try: # 获取当前表结构 cursor.execute("PRAGMA table_info(tasks)") columns = {row[1]: row for row in cursor.fetchall()} # 添加 last_page 字段(最后抓取的页码) if 'last_page' not in columns: logger.info("添加 last_page 字段...") cursor.execute("ALTER TABLE tasks ADD COLUMN last_page INTEGER DEFAULT 0") logger.info("✓ last_page 字段添加成功") else: logger.info("✓ last_page 字段已存在") # 添加 last_ctime 字段(最后的分页参数) if 'last_ctime' not in columns: logger.info("添加 last_ctime 字段...") cursor.execute("ALTER TABLE tasks ADD COLUMN last_ctime TEXT") logger.info("✓ last_ctime 字段添加成功") else: logger.info("✓ last_ctime 字段已存在") conn.commit() logger.info("=" * 50) logger.info("✅ 数据库迁移 V2 完成!") logger.info("=" * 50) except Exception as e: logger.error(f"❌ 迁移失败: {e}") conn.rollback() raise finally: conn.close() if __name__ == "__main__": migrate_database()