60 lines
1.7 KiB
Python
60 lines
1.7 KiB
Python
# -*- 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()
|