74 lines
2.5 KiB
Python
74 lines
2.5 KiB
Python
import sqlite3
|
|
import os
|
|
import argparse
|
|
from datetime import datetime
|
|
|
|
def check_db(table_name=None, limit=20):
|
|
db_path = r'e:\2025Code\orc-order-v3\orc-order-v3\release\data\product_cache.db'
|
|
if not os.path.exists(db_path):
|
|
# 尝试开发环境路径
|
|
db_path = r'e:\2025Code\orc-order-v3\orc-order-v3\data\product_cache.db'
|
|
|
|
if not os.path.exists(db_path):
|
|
print(f"错误: 找不到数据库文件 {db_path}")
|
|
return
|
|
|
|
print(f"正在读取数据库: {db_path}")
|
|
print("-" * 60)
|
|
|
|
try:
|
|
conn = sqlite3.connect(db_path)
|
|
conn.row_factory = sqlite3.Row
|
|
cursor = conn.cursor()
|
|
|
|
# 获取所有表名
|
|
cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
|
|
tables = [row[0] for row in cursor.fetchall() if row[0] != 'sqlite_sequence']
|
|
|
|
if not table_name:
|
|
print(f"数据库中的表: {', '.join(tables)}")
|
|
print("\n使用 'python check_db.py [表名]' 查看具体内容")
|
|
|
|
# 默认显示一些汇总信息
|
|
for table in tables:
|
|
cursor.execute(f"SELECT COUNT(*) FROM {table}")
|
|
count = cursor.fetchone()[0]
|
|
print(f" - {table}: {count} 条记录")
|
|
|
|
target_tables = [table_name] if table_name else tables
|
|
|
|
for table in target_tables:
|
|
if table not in tables:
|
|
print(f"\n警告: 表 '{table}' 不存在")
|
|
continue
|
|
|
|
print(f"\n=== 表: {table} (最近 {limit} 条) ===")
|
|
cursor.execute(f"SELECT * FROM {table} LIMIT {limit}")
|
|
rows = cursor.fetchall()
|
|
|
|
if not rows:
|
|
print(" (空)")
|
|
continue
|
|
|
|
# 打印表头
|
|
keys = rows[0].keys()
|
|
header = " | ".join(f"{str(k):<15}" for k in keys)
|
|
print(header)
|
|
print("-" * len(header))
|
|
|
|
# 打印行
|
|
for row in rows:
|
|
print(" | ".join(f"{str(row[k])[:15]:<15}" for k in keys))
|
|
|
|
conn.close()
|
|
except Exception as e:
|
|
print(f"读取数据库出错: {e}")
|
|
|
|
if __name__ == "__main__":
|
|
parser = argparse.ArgumentParser(description="查看 OCR 系统数据库内容")
|
|
parser.add_argument("table", nargs="?", help="要查看的表名 (products, order_metadata, missing_barcodes)")
|
|
parser.add_argument("--limit", type=int, default=20, help="显示记录条数 (默认 20)")
|
|
|
|
args = parser.parse_args()
|
|
check_db(args.table, args.limit)
|