From 5153fa28de1677d08f408442e66a11413f694026 Mon Sep 17 00:00:00 2001 From: Sakurasan <26715255+Sakurasan@users.noreply.github.com> Date: Mon, 6 Jul 2026 23:59:25 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20docker-compose=20=E6=8C=81=E4=B9=85?= =?UTF-8?q?=E5=8C=96=20SQLite=20=E6=95=B0=E6=8D=AE=E5=BA=93;=20=E8=BF=81?= =?UTF-8?q?=E7=A7=BB=20DB=20=E8=B7=AF=E5=BE=84=E5=88=B0=20data/=20?= =?UTF-8?q?=E5=AD=90=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - docker-compose.yml: bind mount → named volume (auv_data:/app/data) - backend/database.py: DB_PATH 改为 data/stock_data.db,自动迁移旧数据库 - .gitignore: 忽略 *.db 文件 Co-Authored-By: Claude Opus 4.7 --- .gitignore | 5 +++++ backend/database.py | 10 +++++++++- backend/stock_data.db | Bin 73728 -> 0 bytes docker-compose.yml | 5 +++++ 4 files changed, 19 insertions(+), 1 deletion(-) delete mode 100644 backend/stock_data.db diff --git a/.gitignore b/.gitignore index 4e7ca7c..bf76f76 100755 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,11 @@ *.bak *.orig +# 数据库文件 +*.db +*.sqlite +*.sqlite3 + # 环境变量与密钥 .env .env.local diff --git a/backend/database.py b/backend/database.py index ae68e31..fa58cf2 100644 --- a/backend/database.py +++ b/backend/database.py @@ -1,7 +1,7 @@ import sqlite3 import os -DB_PATH = os.path.join(os.path.dirname(__file__), "stock_data.db") +DB_PATH = os.path.join(os.path.dirname(__file__), "data", "stock_data.db") SCHEMA_SQL = """ CREATE TABLE IF NOT EXISTS stock_collections ( @@ -41,6 +41,7 @@ CREATE TABLE IF NOT EXISTS cache ( def get_connection() -> sqlite3.Connection: + os.makedirs(os.path.dirname(DB_PATH), exist_ok=True) conn = sqlite3.connect(DB_PATH) conn.row_factory = sqlite3.Row conn.execute("PRAGMA foreign_keys = ON") @@ -48,6 +49,13 @@ def get_connection() -> sqlite3.Connection: def init_db(): + # 迁移旧版 DB(backend/stock_data.db → backend/data/stock_data.db) + old_path = os.path.join(os.path.dirname(__file__), "stock_data.db") + if os.path.exists(old_path) and os.path.isfile(old_path): + import shutil + shutil.move(old_path, DB_PATH) + print(f"[database] 已迁移 stock_data.db → data/stock_data.db") + conn = get_connection() conn.executescript(SCHEMA_SQL) diff --git a/backend/stock_data.db b/backend/stock_data.db deleted file mode 100644 index 156f1fff5a7c7c4d53bb1ab0f32c3e0697ccee18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73728 zcmeI*Z)_9i9S86`JMlkkKPf7*B8~M{L=y`_?yr5Zgk%@oDr!iY#6bliS;jsVi^NW2 zr)8ZqQAWA~Ba9W1g>;p+wxU!kZ5Sv4R$lO8+KWxoq)K~1_o7nl#Ohvlueay!Z0Bs# z3f4)Z=zG><-}Bu4?z!jl+!NyGPGNL-AY0V9Bl+pcRFRXI4u)mDQI2C6W{9TEG2dSTwPz$AOT@WE?Ad`hXOwf@9*#Sz{fJA%UrKN< zj`Z(~jU3=!h#%NV%U?-N%xLD8!Jz~}3>@iNVFrJ#$k`vk7(Sl{w(Qv|+ z4aR9_GhF{*BK~}Q#CqafY%DRklPy{h*P*dvC%!Ty>b1Zh4K7!k?xvl0^-I7`-jJjUDDH9 zs;FgJoaoV>i;WE=xb6(yUd&Ev-Ceo-t6e+0Ci3ajgkI1U4BkiD6I2|IK>xO{1GWGq z1xv?d2IQm)5F7u9meo^kUP-ZXIYR-8J~r&8&HKjGD)6 z9t16;!q#})=KUY)>bQS5Wwb(iIytDn-gPqtZCW3|4L@`0z0}pE?=z7q6qBhm zl_-3xf%ol)?#z@vxc}S1?+IG}De=)vn?J{pizMj3>CgEc-evt|-3RLsfB*y_009U< z00Izz00bZafrk_5ce|J^%oa(KidvzlCy^IJJ$$%_S2&T62uegzAFL>6*AF$eTav=% zx8D@`up)~YwI`JdrF!JUTB;`{YKME$Avtp-tO`;(rPYrsCj`}~O4udv;=y{k!tr86 z5F!fSR7B58IBIh-#Hder*vi5Yy}r;cRS`BSlQ~h0&?YxlCYZY(VqMG*W;=B%zj=P` z(#iFoeONhuYW>7-bg~|OwxTDSsh=c06g_D*B8m@IWbHHk`@fysV8}nnAL$1c2tWV= z5P$##AOHafKmY;|fB*y@6#-(mZ(}VF;n=p=?7eKua~)4?VQF#8BNqDe{Pjiu{@>x9 zXUH9Lnv9aC{a^Z*{m1?N{>{F7zW02SzL59d-amQgz2o%|tUv$)5P$##AOHafKmY;| z_+JY2b~qWfbGuElhg4Mv@#T-+U%Pys-T+;_{V8**ew)+0W2@huRfrMbqyfAX3WZm1 zT_|6_R=)U2`B(2pN8Jl_xzrLS%8Gv@ObDrctA{ALhz)m#IheC4mOL_JuX9dJ|dkSi&S#UR`;+ zw6wH#?M~_AH=>h)L*4(nd#))g6p=%U+Y%;=>guiYrL*&u3-hZhm!b#vwwxrbEfnDu z#Z?QVZ4*_cwD{@TTg&BN|Dt?xA-ezS%J7%7Pc_x1L}XrZTEZTHgx01+L|Js`VNW?F zokW$w>t~kMZeK6Wo{0|MoBjUE@IM=?;^l}eDDAbXLR4R+m&gZ|qfm!c$xOK0cS7jBlWo-3VRWVbd2@cPAJx6~tq#meoI(_6TmfuPB|NaPvPX^p}<1Rwwb2tWV=5P$##AOHafK;Ur{@V2p?Y;`KCqna_MnMf_8 zPagSe8GTB~XJ*Wa9*XXvDir=FoxEp9VoPN2Bz89FWEtnWrAI~-=loW*Fb zW{kOsw)z%2?_jUR=(7nnPn)~bZB7$ddq}_kZzCTu00Izz00bZa0SG_<0uX?}cTHfEeXF}R3*fbHWowfLHfuxl`~M92igCW9 zzpPuZ4gm;200Izz00bZa0SG_<0uX?}<04@EF+lqLpFBxl`>U_d9+%dk9T0#31Rwwb z2tWV=5P$##AOHafSOi>jeG^SynvDMvfPOwflb