v2.0.0 — 日打卡彻底改为周打卡

This commit is contained in:
mac
2026-07-24 16:20:40 +08:00
parent 350c9fb877
commit 5b637e7fed
5 changed files with 286 additions and 336 deletions

View File

@@ -11,7 +11,7 @@ os.makedirs(DB_DIR, exist_ok=True)
DB_PATH = os.path.join(DB_DIR, 'ziwei_power.db')
# 当前数据库 schema 版本 —— 改表结构时必须 +1 并补迁移逻辑
CURRENT_SCHEMA_VERSION = 3
CURRENT_SCHEMA_VERSION = 4
def get_conn():
@@ -74,6 +74,29 @@ def init_db():
conn.execute("ALTER TABLE wishes ADD COLUMN quadrant TEXT NOT NULL DEFAULT '重要不紧急'")
conn.execute("UPDATE wishes SET quadrant = CASE priority WHEN '' THEN '重要紧急' WHEN '' THEN '重要不紧急' WHEN '' THEN '不紧急不重要' ELSE '重要不紧急' END WHERE quadrant = '重要不紧急'")
if current < 4:
# v4: 日打卡 → 周打卡
# 备份旧表 → 聚合 → 新建周表
existing = conn.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='checkins'").fetchone()
if existing:
# 检查是否已有备份表(幂等)
backup_exists = conn.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='checkins_daily_backup'").fetchone()
if not backup_exists:
conn.execute("ALTER TABLE checkins RENAME TO checkins_daily_backup")
# 重新创建 checkins 表结构不变date 语义变为周号)
conn.execute('''
CREATE TABLE IF NOT EXISTS checkins (
id INTEGER PRIMARY KEY AUTOINCREMENT,
date TEXT UNIQUE NOT NULL,
data TEXT NOT NULL,
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
)
''')
# 聚合日数据到周
if not backup_exists:
_aggregate_daily_to_weekly(conn)
# ── 将来加字段/改表在此扩展 ──
# if current < 2:
# conn.execute('ALTER TABLE checkins ADD COLUMN tags TEXT DEFAULT ""')