Files
usa/scripts/align-production-schema.sh
2026-03-04 19:19:50 +08:00

155 lines
8.3 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# ç”± scripts/gen-align-schema-from-local.sh æ ¹æ<C2B9>®æœ¬åœ° server/data.db 表结构生æˆ<C3A6>,ä¾ç”Ÿäº§æ‰§è¡Œã€
# 用法:在生产目录执行 DB_PATH=server/data.db ./scripts/align-production-schema.sh
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
DB_PATH="${DB_PATH:-$PROJECT_ROOT/server/data.db}"
run() { sqlite3 "$DB_PATH" "$1" 2>/dev/null || true; }
echo "=== 对é½<C3A9>生产库表结构(与本地 data.db 一致):$DB_PATH ==="
run "ALTER TABLE combat_losses ADD COLUMN bases_destroyed INTEGER NOT NULL;"
# ¼ˆæœ¬åœ°åˆ—)
run "ALTER TABLE combat_losses ADD COLUMN bases_damaged INTEGER NOT NULL;"
run "ALTER TABLE combat_losses ADD COLUMN personnel_killed INTEGER NOT NULL;"
run "ALTER TABLE combat_losses ADD COLUMN personnel_wounded INTEGER NOT NULL;"
run "ALTER TABLE combat_losses ADD COLUMN aircraft INTEGER NOT NULL;"
run "ALTER TABLE combat_losses ADD COLUMN warships INTEGER NOT NULL;"
run "ALTER TABLE combat_losses ADD COLUMN armor INTEGER NOT NULL;"
run "ALTER TABLE combat_losses ADD COLUMN vehicles INTEGER NOT NULL;"
run "ALTER TABLE combat_losses ADD COLUMN civilian_killed INTEGER NOT NULL DEFAULT 0;"
run "ALTER TABLE combat_losses ADD COLUMN civilian_wounded INTEGER NOT NULL DEFAULT 0;"
run "ALTER TABLE combat_losses ADD COLUMN drones INTEGER NOT NULL DEFAULT 0;"
run "ALTER TABLE combat_losses ADD COLUMN missiles INTEGER NOT NULL DEFAULT 0;"
run "ALTER TABLE combat_losses ADD COLUMN helicopters INTEGER NOT NULL DEFAULT 0;"
run "ALTER TABLE combat_losses ADD COLUMN submarines INTEGER NOT NULL DEFAULT 0;"
run "ALTER TABLE combat_losses ADD COLUMN tanks INTEGER NOT NULL DEFAULT 0;"
run "ALTER TABLE combat_losses ADD COLUMN carriers INTEGER NOT NULL DEFAULT 0;"
run "UPDATE combat_losses SET carriers = COALESCE(tanks, 0) WHERE carriers = 0;"
run "ALTER TABLE combat_losses ADD COLUMN civilian_ships INTEGER NOT NULL DEFAULT 0;"
run "ALTER TABLE combat_losses ADD COLUMN airport_port INTEGER NOT NULL DEFAULT 0;"
echo " combat_losses done"
run "ALTER TABLE conflict_stats ADD COLUMN total_events INTEGER NOT NULL DEFAULT 0;"
# ¼ˆæœ¬åœ°åˆ—)
run "ALTER TABLE conflict_stats ADD COLUMN high_impact_events INTEGER NOT NULL DEFAULT 0;"
run "ALTER TABLE conflict_stats ADD COLUMN estimated_casualties INTEGER NOT NULL DEFAULT 0;"
run "ALTER TABLE conflict_stats ADD COLUMN estimated_strike_count INTEGER NOT NULL DEFAULT 0;"
run "ALTER TABLE conflict_stats ADD COLUMN updated_at TEXT NOT NULL;"
echo " conflict_stats done"
run "ALTER TABLE display_stats ADD COLUMN viewers INTEGER;"
# ¼ˆæœ¬åœ°åˆ—)
run "ALTER TABLE display_stats ADD COLUMN share_count INTEGER;"
run "ALTER TABLE display_stats ADD COLUMN like_count INTEGER;"
run "ALTER TABLE display_stats ADD COLUMN override_enabled INTEGER NOT NULL DEFAULT 0;"
echo " display_stats done"
run "ALTER TABLE feedback ADD COLUMN content TEXT NOT NULL;"
# ¼ˆæœ¬åœ°åˆ—)
run "ALTER TABLE feedback ADD COLUMN ip TEXT;"
run "ALTER TABLE feedback ADD COLUMN created_at TEXT NOT NULL;"
echo " feedback done"
run "ALTER TABLE force_asset ADD COLUMN side TEXT NOT NULL;"
# ¼ˆæœ¬åœ°åˆ—)
run "ALTER TABLE force_asset ADD COLUMN name TEXT NOT NULL;"
run "ALTER TABLE force_asset ADD COLUMN type TEXT NOT NULL;"
run "ALTER TABLE force_asset ADD COLUMN count INTEGER NOT NULL;"
run "ALTER TABLE force_asset ADD COLUMN status TEXT NOT NULL;"
run "ALTER TABLE force_asset ADD COLUMN lat REAL;"
run "ALTER TABLE force_asset ADD COLUMN lng REAL;"
echo " force_asset done"
run "ALTER TABLE force_summary ADD COLUMN total_assets INTEGER NOT NULL;"
# ¼ˆæœ¬åœ°åˆ—)
run "ALTER TABLE force_summary ADD COLUMN personnel INTEGER NOT NULL;"
run "ALTER TABLE force_summary ADD COLUMN naval_ships INTEGER NOT NULL;"
run "ALTER TABLE force_summary ADD COLUMN aircraft INTEGER NOT NULL;"
run "ALTER TABLE force_summary ADD COLUMN ground_units INTEGER NOT NULL;"
run "ALTER TABLE force_summary ADD COLUMN uav INTEGER NOT NULL;"
run "ALTER TABLE force_summary ADD COLUMN missile_consumed INTEGER NOT NULL;"
run "ALTER TABLE force_summary ADD COLUMN missile_stock INTEGER NOT NULL;"
echo " force_summary done"
run "ALTER TABLE gdelt_events ADD COLUMN event_time TEXT NOT NULL;"
# ¼ˆæœ¬åœ°åˆ—)
run "ALTER TABLE gdelt_events ADD COLUMN title TEXT NOT NULL;"
run "ALTER TABLE gdelt_events ADD COLUMN lat REAL NOT NULL;"
run "ALTER TABLE gdelt_events ADD COLUMN lng REAL NOT NULL;"
run "ALTER TABLE gdelt_events ADD COLUMN impact_score INTEGER NOT NULL;"
run "ALTER TABLE gdelt_events ADD COLUMN url TEXT;"
run "ALTER TABLE gdelt_events ADD COLUMN created_at TEXT;"
echo " gdelt_events done"
run "ALTER TABLE key_location ADD COLUMN side TEXT NOT NULL;"
# ¼ˆæœ¬åœ°åˆ—)
run "ALTER TABLE key_location ADD COLUMN name TEXT NOT NULL;"
run "ALTER TABLE key_location ADD COLUMN lat REAL NOT NULL;"
run "ALTER TABLE key_location ADD COLUMN lng REAL NOT NULL;"
run "ALTER TABLE key_location ADD COLUMN type TEXT;"
run "ALTER TABLE key_location ADD COLUMN region TEXT;"
run 'ALTER TABLE key_location ADD COLUMN status TEXT DEFAULT '\''operational'\'';'
run "ALTER TABLE key_location ADD COLUMN damage_level INTEGER;"
run "ALTER TABLE key_location ADD COLUMN attacked_at TEXT;"
echo " key_location done"
run "ALTER TABLE like_count ADD COLUMN total INTEGER NOT NULL DEFAULT 0;"
# ¼ˆæœ¬åœ°åˆ—)
echo " like_count done"
run "ALTER TABLE map_strike_line ADD COLUMN target_lng REAL NOT NULL;"
# ¼ˆæœ¬åœ°åˆ—)
run "ALTER TABLE map_strike_line ADD COLUMN target_lat REAL NOT NULL;"
run "ALTER TABLE map_strike_line ADD COLUMN target_name TEXT;"
run "ALTER TABLE map_strike_line ADD COLUMN struck_at TEXT;"
echo " map_strike_line done"
run "ALTER TABLE map_strike_source ADD COLUMN name TEXT NOT NULL;"
# ¼ˆæœ¬åœ°åˆ—)
run "ALTER TABLE map_strike_source ADD COLUMN lng REAL NOT NULL;"
run "ALTER TABLE map_strike_source ADD COLUMN lat REAL NOT NULL;"
echo " map_strike_source done"
run "ALTER TABLE news_content ADD COLUMN content_hash TEXT NOT NULL;"
# ¼ˆæœ¬åœ°åˆ—)
run "ALTER TABLE news_content ADD COLUMN title TEXT NOT NULL;"
run "ALTER TABLE news_content ADD COLUMN summary TEXT NOT NULL;"
run 'ALTER TABLE news_content ADD COLUMN url TEXT NOT NULL DEFAULT '\'''\'';'
run 'ALTER TABLE news_content ADD COLUMN source TEXT NOT NULL DEFAULT '\'''\'';'
run "ALTER TABLE news_content ADD COLUMN published_at TEXT NOT NULL;"
run 'ALTER TABLE news_content ADD COLUMN category TEXT NOT NULL DEFAULT '\''other'\'';'
run 'ALTER TABLE news_content ADD COLUMN severity TEXT NOT NULL DEFAULT '\''medium'\'';'
run "ALTER TABLE news_content ADD COLUMN created_at TEXT NOT NULL;"
echo " news_content done"
run "ALTER TABLE power_index ADD COLUMN overall INTEGER NOT NULL;"
# ¼ˆæœ¬åœ°åˆ—)
run "ALTER TABLE power_index ADD COLUMN military_strength INTEGER NOT NULL;"
run "ALTER TABLE power_index ADD COLUMN economic_power INTEGER NOT NULL;"
run "ALTER TABLE power_index ADD COLUMN geopolitical_influence INTEGER NOT NULL;"
echo " power_index done"
run "ALTER TABLE retaliation_current ADD COLUMN value INTEGER NOT NULL;"
# ¼ˆæœ¬åœ°åˆ—)
echo " retaliation_current done"
run "ALTER TABLE retaliation_history ADD COLUMN time TEXT NOT NULL;"
# ¼ˆæœ¬åœ°åˆ—)
run "ALTER TABLE retaliation_history ADD COLUMN value INTEGER NOT NULL;"
echo " retaliation_history done"
run "ALTER TABLE share_count ADD COLUMN total INTEGER NOT NULL DEFAULT 0;"
# ¼ˆæœ¬åœ°åˆ—)
echo " share_count done"
run "ALTER TABLE situation ADD COLUMN data TEXT NOT NULL;"
# ¼ˆæœ¬åœ°åˆ—)
run "ALTER TABLE situation ADD COLUMN updated_at TEXT NOT NULL;"
echo " situation done"
run "ALTER TABLE situation_update ADD COLUMN timestamp TEXT NOT NULL;"
# ¼ˆæœ¬åœ°åˆ—)
run "ALTER TABLE situation_update ADD COLUMN category TEXT NOT NULL;"
run "ALTER TABLE situation_update ADD COLUMN summary TEXT NOT NULL;"
run "ALTER TABLE situation_update ADD COLUMN severity TEXT NOT NULL;"
echo " situation_update done"
run "ALTER TABLE visitor_count ADD COLUMN total INTEGER NOT NULL DEFAULT 0;"
# ¼ˆæœ¬åœ°åˆ—)
echo " visitor_count done"
run "ALTER TABLE visits ADD COLUMN last_seen TEXT NOT NULL;"
# ¼ˆæœ¬åœ°åˆ—)
echo " visits done"
run "ALTER TABLE wall_street_trend ADD COLUMN time TEXT NOT NULL;"
# ¼ˆæœ¬åœ°åˆ—)
run "ALTER TABLE wall_street_trend ADD COLUMN value INTEGER NOT NULL;"
echo " wall_street_trend done"
echo "=== 完æˆ<C3A6>ã€æ ¸å¯¹ç¤ºä¾ï¼š ==="
echo " sqlite3 $DB_PATH \"PRAGMA table_info(key_location);\""
echo " sqlite3 $DB_PATH \"PRAGMA table_info(combat_losses);\""