Files
motovaultpro/data/make-model-import/import_data.sh
2025-12-14 14:53:45 -06:00

79 lines
2.9 KiB
Bash
Executable File

#!/bin/bash
# Import generated SQL files into PostgreSQL database
# Run this after etl_generate_sql.py has created the SQL files
set -e
echo "=========================================="
echo "📥 Automotive Database Import"
echo "=========================================="
echo ""
# Check if Docker container is running
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
echo "✓ Docker container mvp-postgres is running"
echo ""
# Check if output directory exists
if [ ! -d "output" ]; then
echo "❌ Error: output directory not found"
echo "Please run etl_generate_sql.py first to generate SQL files"
exit 1
fi
# Run schema migration first
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 ""
# Truncate tables for a clean rerun
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 ""
# Import engines
echo "📥 Step 3: Importing engines..."
docker exec -i mvp-postgres psql -U postgres -d motovaultpro < output/01_engines.sql
echo "✓ Engines imported"
echo ""
# Import transmissions
echo "📥 Step 4: Importing transmissions..."
docker exec -i mvp-postgres psql -U postgres -d motovaultpro < output/02_transmissions.sql
echo "✓ Transmissions imported"
echo ""
# Import vehicle options
echo "📥 Step 5: Importing vehicle options (this may take a minute)..."
docker exec -i mvp-postgres psql -U postgres -d motovaultpro < output/03_vehicle_options.sql
echo "✓ Vehicle options imported"
echo ""
# Verify data
echo "=========================================="
echo "✅ Import completed successfully!"
echo "=========================================="
echo ""
echo "🔍 Database verification:"
docker exec mvp-postgres psql -U postgres -d motovaultpro -c "SELECT COUNT(*) as engine_count FROM engines;"
docker exec mvp-postgres psql -U postgres -d motovaultpro -c "SELECT COUNT(*) as transmission_count FROM transmissions;"
docker exec mvp-postgres psql -U postgres -d motovaultpro -c "SELECT COUNT(*) as vehicle_count 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;"
echo ""
docker exec mvp-postgres psql -U postgres -d motovaultpro -c "SELECT * FROM available_years;"
echo ""
echo "📊 Sample query - 2024 makes:"
docker exec mvp-postgres psql -U postgres -d motovaultpro -c "SELECT * FROM get_makes_for_year(2024) LIMIT 10;"
echo ""
echo "✓ Database is ready for use!"