#!/bin/bash # Offline import of generated SQL files into PostgreSQL (no network). set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" echo "==========================================" echo "๐Ÿ“ฅ Automotive Database Import (offline)" echo "==========================================" echo "" require_file() { if [ ! -f "$1" ]; then echo "โŒ Missing required file: $1" exit 1 fi } if ! docker ps --filter "name=mvp-postgres" --format "{{.Names}}" | grep -q "mvp-postgres"; then echo "โŒ Error: mvp-postgres container is not running" exit 1 fi require_file "output/01_engines.sql" require_file "output/02_transmissions.sql" require_file "output/03_vehicle_options.sql" echo "๐Ÿ“‹ Step 1: Running database schema migration..." docker exec -i mvp-postgres psql -U postgres -d motovaultpro < migrations/001_create_vehicle_database.sql echo "โœ“ Schema migration completed" echo "" echo "๐Ÿงน Step 2: Truncating existing data..." docker exec -i mvp-postgres psql -U postgres -d motovaultpro <<'EOF' TRUNCATE TABLE vehicle_options RESTART IDENTITY CASCADE; TRUNCATE TABLE engines RESTART IDENTITY CASCADE; TRUNCATE TABLE transmissions RESTART IDENTITY CASCADE; EOF echo "โœ“ Tables truncated" echo "" echo "๐Ÿ“ฅ Step 3: Importing engines..." docker exec -i mvp-postgres psql -U postgres -d motovaultpro < output/01_engines.sql echo "โœ“ Engines imported" echo "" echo "๐Ÿ“ฅ Step 4: Importing transmissions..." docker exec -i mvp-postgres psql -U postgres -d motovaultpro < output/02_transmissions.sql echo "โœ“ Transmissions imported" echo "" echo "๐Ÿ“ฅ Step 5: Importing vehicle options (observed pairs only)..." docker exec -i mvp-postgres psql -U postgres -d motovaultpro < output/03_vehicle_options.sql echo "โœ“ Vehicle options imported" echo "" echo "==========================================" echo "โœ… Import completed" echo "==========================================" echo "" echo "๐Ÿ” Database verification:" docker exec mvp-postgres psql -U postgres -d motovaultpro -c "SELECT COUNT(*) as engines FROM engines;" docker exec mvp-postgres psql -U postgres -d motovaultpro -c "SELECT COUNT(*) as transmissions FROM transmissions;" docker exec mvp-postgres psql -U postgres -d motovaultpro -c "SELECT COUNT(*) as vehicle_options FROM vehicle_options;" docker exec mvp-postgres psql -U postgres -d motovaultpro -c "SELECT MIN(year) as min_year, MAX(year) as max_year FROM vehicle_options;" docker exec mvp-postgres psql -U postgres -d motovaultpro -c "SELECT DISTINCT year FROM vehicle_options ORDER BY year LIMIT 5;" docker exec mvp-postgres psql -U postgres -d motovaultpro -c "SELECT DISTINCT year FROM vehicle_options ORDER BY year DESC LIMIT 5;" echo "" echo "โœ“ Database ready for dropdown use."