#!/usr/bin/env python # -*- coding: utf-8 -*- import sqlite3 import os DATABASE_PATH = os.path.join(os.path.dirname(__file__), '../database/app.db') def get_db(): conn = sqlite3.connect(DATABASE_PATH) conn.row_factory = sqlite3.Row return conn print('=== 数据库完整检查 ===') if os.path.exists(DATABASE_PATH): print(f'数据库文件存在: {DATABASE_PATH}') conn = get_db() cursor = conn.cursor() print('\n=== 轮播图数据 ===') cursor.execute('SELECT * FROM carousels ORDER BY page_type, sort_order') carousels = cursor.fetchall() for c in carousels: print(f'ID={c["id"]}, page_type={c["page_type"]}, sort_order={c["sort_order"]}, image_url={c["image_url"]}') print(f'\n轮播图总数: {len(carousels)}') print('\n=== 检查轮播图重复 (page_type + sort_order) ===') cursor.execute(''' SELECT page_type, sort_order, COUNT(*) as count FROM carousels GROUP BY page_type, sort_order HAVING COUNT(*) > 1 ''') carousel_duplicates = cursor.fetchall() if carousel_duplicates: for dup in carousel_duplicates: print(f'重复: page_type={dup["page_type"]}, sort_order={dup["sort_order"]}, 数量={dup["count"]}') else: print('轮播图没有重复数据') print('\n=== 任务表数据 ===') cursor.execute('SELECT id, title FROM tasks ORDER BY id') tasks = cursor.fetchall() for t in tasks: print(f'ID={t["id"]}, title={t["title"]}') print(f'\n任务总数: {len(tasks)}') print('\n=== 检查任务标题重复 ===') cursor.execute(''' SELECT title, COUNT(*) as count FROM tasks GROUP BY title HAVING COUNT(*) > 1 ''') task_duplicates = cursor.fetchall() if task_duplicates: for dup in task_duplicates: print(f'重复标题: {dup["title"]}, 数量={dup["count"]}') else: print('任务表没有重复标题') conn.close() else: print('数据库文件不存在') print('\n检查完成!')