Files
sanguo_vnpy/archive/2026-04-29-cleanup/scripts/utils/check_database_v2.py
T
2026-04-29 20:15:43 +08:00

55 lines
1.6 KiB
Python
Executable File

#!/usr/bin/env python3
"""
检查sqlite数据库中有多少bar数据 - vnpy_sqlite表名是dbbardata
"""
import sqlite3
from vnpy.trader.constant import Exchange
db_path = '/root/.vntrader/database.db'
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
print(f"📊 数据库: {db_path}")
# 查看所有表
cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
tables = cursor.fetchall()
print(f"\n📋 所有表:")
for table in tables:
print(f" {table[0]}")
# 查看dbbardata表
print(f"\n📊 dbbardata表统计:")
try:
cursor.execute("SELECT COUNT(*) FROM dbbardata;")
count = cursor.fetchone()[0]
print(f" 总共有 {count} 条bar数据")
# 查看所有symbol
cursor.execute("SELECT DISTINCT symbol, exchange FROM dbbardata;")
symbols = cursor.fetchall()
print(f" 标的列表:")
for symbol, exchange_code in symbols:
cursor.execute("SELECT COUNT(*) FROM dbbardata WHERE symbol = ? AND exchange = ?", (symbol, exchange_code))
cnt = cursor.fetchone()[0]
try:
exchange = Exchange(exchange_code)
except:
exchange = exchange_code
print(f" {symbol}.{exchange}: {cnt}")
# 看一下时间范围
cursor.execute("SELECT MIN(datetime), MAX(datetime) FROM dbbardata WHERE symbol = ? AND exchange = ?", (symbol, exchange_code))
min_dt, max_dt = cursor.fetchone()
print(f" 时间范围: {min_dt} ~ {max_dt}")
except Exception as e:
print(f"❌ 查询失败: {e}")
import traceback
traceback.print_exc()
conn.close()
print("\n✅ 查询完成")