72 lines
2.7 KiB
Bash
Executable File
72 lines
2.7 KiB
Bash
Executable File
#!/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."
|