fix:对齐生产环境的数据字段
This commit is contained in:
154
scripts/align-production-schema.sh
Executable file
154
scripts/align-production-schema.sh
Executable file
@@ -0,0 +1,154 @@
|
||||
#!/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);\""
|
||||
Reference in New Issue
Block a user