Possible working ETL
This commit is contained in:
71
data/vehicle-etl/import_data.sh
Executable file
71
data/vehicle-etl/import_data.sh
Executable file
@@ -0,0 +1,71 @@
|
||||
#!/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."
|
||||
Reference in New Issue
Block a user