From 634a3fa8ed864993d91ce5a3d0569cd81584dd6c Mon Sep 17 00:00:00 2001 From: cfdaily Date: Sat, 2 May 2026 19:56:18 +0800 Subject: [PATCH] auto-sync: 2026-05-02 19:56:18 --- data_platform/updater.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/data_platform/updater.py b/data_platform/updater.py index fcb54e44..a002026b 100644 --- a/data_platform/updater.py +++ b/data_platform/updater.py @@ -153,19 +153,21 @@ def main(): time.sleep(0.3) - # 写vnpy DB + # 写vnpy DB - 直接在NAS上追加增量(避免1.4GB全量copy) if all_db_values: logger.info(f"写入vnpy DB: {len(all_db_values)} 条记录") try: - shutil.copy2(VNPY_DB_PATH, LOCAL_DB_TMP) - conn = sqlite3.connect(LOCAL_DB_TMP) + # 方式1: 直接在NAS DB上INSERT OR REPLACE(增量数据量小,SMB可接受) + conn = sqlite3.connect(VNPY_DB_PATH, timeout=120) c = conn.cursor() + c.execute("PRAGMA journal_mode=WAL") for j in range(0, len(all_db_values), BATCH_SIZE): c.executemany('''INSERT OR REPLACE INTO dbbardata (symbol,exchange,datetime,interval,volume,turnover,open_interest, open_price,high_price,low_price,close_price) VALUES (?,?,?,?,?,?,?,?,?,?,?)''', all_db_values[j:j+BATCH_SIZE]) - conn.commit() + conn.commit() + logger.info(f" 写入批次 {j//BATCH_SIZE + 1}/{(len(all_db_values)-1)//BATCH_SIZE + 1}") # 重建overview c.execute('''INSERT OR REPLACE INTO dbbaroverview (symbol,exchange,interval,count,start,end) @@ -173,8 +175,6 @@ def main(): FROM dbbardata GROUP BY symbol,exchange,interval''') conn.commit() conn.close() - - shutil.copy2(LOCAL_DB_TMP, VNPY_DB_PATH) logger.info("✅ vnpy DB更新完成") except Exception as e: logger.error(f"❌ vnpy DB更新失败: {e}")