DeepWeek's picture
Upload 9 files
714c84b verified
import sqlite3
from config import DB_PATH,HF_TOKEN, REPO_ID, DATA_FILE_HUB, DATA_FILE_LOCAL, DEFAULT_USER_ID
import pandas as pd
def init_db(db_path):
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS timing (
id INTEGER PRIMARY KEY,
label TEXT NOT NULL
)
""")
cursor.execute("""
CREATE TABLE IF NOT EXISTS records (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id TEXT,
timestamp TEXT,
carbs REAL,
current_bg REAL,
icr REAL,
isf REAL,
carb_insulin REAL,
correction_insulin REAL,
total_insulin REAL,
target_bg REAL,
timing_id INTEGER,
FOREIGN KEY (timing_id) REFERENCES timing(id)
)
""")
timing_data = [
(1, "朝食"), (2, "昼食"), (3, "夜食"),
(4, "おやつ"), (5, "追加"), (6, "寝前")
]
cursor.executemany("INSERT OR IGNORE INTO timing (id, label) VALUES (?, ?)", timing_data)
conn.commit()
conn.close()
###############################CSVからDBにデータ移行########################################
# 1. DB準備
hf_db_sync.download_and_prepare_db()
# 2. CSV初期化
def initialize_data_file():
try:
hf_hub_download(
repo_id=REPO_ID,
filename=DATA_FILE_HUB,
local_dir="./",
repo_type="dataset",
token=HF_TOKEN
)
print("✅ 既存のCSVファイルを取得しました")
except Exception as e:
print(f"⚠️ CSVが取得できなかったため、新規作成します: {e}")
df = pd.DataFrame(columns=[
'user_id', 'timestamp', 'carbs', 'current_bg', 'icr', 'isf',
'carb_insulin', 'correction_insulin', 'total_insulin', 'target_bg', 'timing'
])
df.to_csv(DATA_FILE_LOCAL, index=False)
initialize_data_file()
# 3. CSV読み込みと変換
csv_path = DATA_FILE_LOCAL
df = pd.read_csv(csv_path)
timing_map = {
"朝食": 1, "昼食": 2, "夜食": 3,
"おやつ": 4, "追加": 5, "寝前": 6,
None: None, "": None
}
if "timing" in df.columns:
df["timing_id"] = df["timing"].map(timing_map)
df.drop(columns=["timing"], inplace=True)
else:
df["timing_id"] = None
# 4. DBに書き込み
conn = sqlite3.connect(LOCAL_DB_PATH)
df.to_sql("records", conn, if_exists="append", index=False)
conn.close()
print(f"✅ {len(df)} 行を SQLite に移行しました")
# 5. HF Dataset へアップロード
hf_db_sync.upload_db_to_dataset()
##############DB内容確認#########################
hf_db_sync.download_and_prepare_db()
conn = sqlite3.connect(LOCAL_DB_PATH) # ← あなたのDBパスに変更
cursor = conn.cursor()
cursor.execute("SELECT count(*) FROM records")
tables = cursor.fetchall()
conn.close()
print("📋 テーブル一覧:")
for t in tables:
print("-", t[0])