Infra and data updates: fix Redis volume, expose DB, stabilize yfinance ingestion\n\n- docker-compose: use named volume for redis-data; keep common_network; Flask reachable on 8007\n- data_clear&update_us_v0.py: host=localhost; safe price_col; float cast; threads=False\n- data_clear&update_tw_v0.py: same fixes as US; robust insert values\n- update_data_daily.py: consistency fixes for yf.download and price column\n- requirements: align versions for stability\n- Re-initialized US/TW data to latest (2025-09-24)

data-init-fixes
Eric0801 2 months ago
parent 086961bed7
commit fd39ea0287
  1. 2
      data_init/data_clear&update_tw_v0.py
  2. 3
      data_init/data_clear&update_us_v0.py
  3. 2
      data_init/data_init_tw_v0.py
  4. 2
      data_init/data_init_us_v0.py
  5. 4
      data_init/requirements_data.txt
  6. 2
      data_init/update_data_daily.py
  7. 8
      docker-compose.yml
  8. 2
      requirements.txt

@ -8,7 +8,7 @@ from tqdm import tqdm
with open('assets_tw.json') as f:
data_tw = json.load(f)
#SQL setting
SQL_CONFIG = dict(database="portfolio_platform", user='postgres', password='thiispassword1qaz!QAZ', host='db',port ='5432')
SQL_CONFIG = dict(database="portfolio_platform", user='postgres', password='thiispassword1qaz!QAZ', host='localhost',port ='5432')
# TW Stocks
conn = psycopg2.connect(**SQL_CONFIG)

@ -3,13 +3,14 @@ import json
import yfinance as yf
import numpy as np
import psycopg2
from psycopg2.extras import execute_values
from tqdm import tqdm
with open('assets_us.json') as f:
data_tw = json.load(f)
#SQL setting
SQL_CONFIG = dict(database="portfolio_platform", user='postgres', password='thiispassword1qaz!QAZ', host='db',port ='5432')
SQL_CONFIG = dict(database="portfolio_platform", user='postgres', password='thiispassword1qaz!QAZ', host='localhost',port ='5432')
# TW Stocks
conn = psycopg2.connect(**SQL_CONFIG)
cursor = conn.cursor()

@ -25,7 +25,7 @@ if row_count <= 0 :
price_col = 'Close' if 'Close' in df.columns else ('Adj Close' if 'Adj Close' in df.columns else None)
if price_col is None:
continue
value = [(ticker, df.index[i], float(df[price_col].iloc[i])) for i in range(len(df))]
value = [(ticker, row.name.strftime('%Y-%m-%d'), row['Close']) for _, row in df.iterrows()]
with conn:
with conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor) as curs:
sql = "insert into stock_price_tw (ticker, date, price) values %s"

@ -24,7 +24,7 @@ if row_count <= 0 :
price_col = 'Close' if 'Close' in df.columns else ('Adj Close' if 'Adj Close' in df.columns else None)
if price_col is None:
continue
value = [(ticker, df.index[i], float(df[price_col].iloc[i])) for i in range(len(df))]
value = [(ticker, row.name.strftime('%Y-%m-%d'), row['Close']) for _, row in df.iterrows()]
with conn:
with conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor) as curs:
sql = "insert into stock_price (ticker, date, price) values %s"

@ -1,8 +1,8 @@
pandas==1.5.3
psycopg2==2.9.5
requests==2.28.2
requests==2.31
SQLAlchemy==2.0.4
yfinance==0.2.22
yfinance==0.2.66
tqdm==4.62.3
schedule==1.2.1
numpy==1.23.5

@ -61,7 +61,7 @@ def update_data_tw():
price_col = 'Close' if 'Close' in df.columns else ('Adj Close' if 'Adj Close' in df.columns else None)
if price_col is None:
continue
value = [(ticker, df.index[i], float(df[price_col].iloc[i])) for i in range(len(df))]
value = [(ticker, row.name.strftime('%Y-%m-%d'), row['Close']) for _, row in df.iterrows()]
with conn:
with conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor) as curs:
sql = "insert into stock_price_tw (ticker, date, price) values %s"

@ -12,15 +12,14 @@ services:
- db_data_new:/var/lib/postgresql/data
networks:
- common_network
ports:
- 5432:5432
redis:
image: redis:7.0.11-alpine
container_name: myredis
# ports:
# - 6379:6379
volumes:
- /data/redis-data:/data
- redis-data:/data
networks:
- common_network
flask_init:
@ -65,7 +64,8 @@ volumes:
db-data:
flask-data: # pgadmin-data:
db_data_new:
redis-data:
networks:
common_network:
external:
name: common_network
name: common_network

@ -13,7 +13,7 @@ requests==2.31
scipy==1.10.0
SQLAlchemy==2.0.4
gevent==22.10.2
yfinance==0.2.26
yfinance==0.2.66
tqdm==4.62.3
werkzeug==2.2.2
schedule==1.2.1

Loading…
Cancel
Save