#!/bin/bash # 热点股追踪数据导出/导入快捷脚本 set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" PYTHON_SCRIPT="$SCRIPT_DIR/export_hotspot_data.py" # 颜色输出 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color show_help() { echo "用法:" echo " $0 export [日期] - 导出指定日期的数据(默认:2026-08-20)" echo " $0 import <文件> - 导入数据文件" echo " $0 list - 列出所有有数据的日期" echo " $0 backup - 备份整个数据库" echo "" echo "示例:" echo " $0 export 2026-08-20" echo " $0 import hotspot_2026-08-20.json" echo " $0 backup" } export_data() { local date="${1:-2026-08-20}" local output_file="hotspot_${date}.json" echo -e "${YELLOW}📤 导出 $date 的热点股数据...${NC}" python3 "$PYTHON_SCRIPT" export --date "$date" --output "$output_file" if [ -f "$output_file" ]; then echo -e "${GREEN}✅ 导出完成:$output_file${NC}" echo "文件大小:$(du -h "$output_file" | cut -f1)" else echo -e "${RED}❌ 导出失败${NC}" exit 1 fi } import_data() { local file="$1" if [ -z "$file" ]; then echo -e "${RED}❌ 请指定要导入的文件${NC}" exit 1 fi if [ ! -f "$file" ]; then echo -e "${RED}❌ 文件不存在:$file${NC}" exit 1 fi echo -e "${YELLOW}📥 导入数据:$file${NC}" python3 "$PYTHON_SCRIPT" import --file "$file" } list_dates() { echo -e "${YELLOW}📅 列出数据库中的日期...${NC}" python3 "$PYTHON_SCRIPT" list } backup_database() { local db_path="$PROJECT_DIR/backend/data/stock_data.db" local backup_dir="$PROJECT_DIR/backups" local timestamp=$(date +%Y%m%d_%H%M%S) local backup_file="$backup_dir/stock_data_${timestamp}.db" if [ ! -f "$db_path" ]; then echo -e "${RED}❌ 数据库文件不存在:$db_path${NC}" exit 1 fi # 创建备份目录 mkdir -p "$backup_dir" # 复制数据库 cp "$db_path" "$backup_file" if [ -f "$backup_file" ]; then echo -e "${GREEN}✅ 数据库备份完成:$backup_file${NC}" echo "文件大小:$(du -h "$backup_file" | cut -f1)" else echo -e "${RED}❌ 备份失败${NC}" exit 1 fi } # 主逻辑 case "${1:-help}" in export) export_data "$2" ;; import) import_data "$2" ;; list) list_dates ;; backup) backup_database ;; *) show_help ;; esac