38 lines
1 KiB
Bash
38 lines
1 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
set -e
|
||
|
|
|
||
|
|
DB_NAME="veza_migrations_v1_test"
|
||
|
|
DB_USER="postgres"
|
||
|
|
DB_HOST="localhost"
|
||
|
|
MIGRATIONS_DIR="veza-backend-api/migrations"
|
||
|
|
|
||
|
|
echo "🔄 Resetting Test Database: $DB_NAME..."
|
||
|
|
|
||
|
|
# Drop and Create DB
|
||
|
|
echo "💣 Dropping database $DB_NAME..."
|
||
|
|
dropdb --if-exists -h $DB_HOST -U $DB_USER $DB_NAME
|
||
|
|
echo "✨ Creating database $DB_NAME..."
|
||
|
|
createdb -h $DB_HOST -U $DB_USER $DB_NAME
|
||
|
|
|
||
|
|
# Run Migrations
|
||
|
|
echo "🚀 Running V1 Migrations..."
|
||
|
|
|
||
|
|
for file in $(ls $MIGRATIONS_DIR/*.sql | sort); do
|
||
|
|
echo " ➡️ Applying $(basename $file)..."
|
||
|
|
psql -h $DB_HOST -U $DB_USER -d $DB_NAME -f "$file" > /dev/null
|
||
|
|
done
|
||
|
|
|
||
|
|
echo "✅ All migrations applied successfully!"
|
||
|
|
|
||
|
|
# Validation
|
||
|
|
echo "🔍 Verifying Schema..."
|
||
|
|
TABLE_COUNT=$(psql -h $DB_HOST -U $DB_USER -d $DB_NAME -t -c "SELECT count(*) FROM information_schema.tables WHERE table_schema = 'public';")
|
||
|
|
echo "📊 Total Tables in Public Schema: $TABLE_COUNT"
|
||
|
|
|
||
|
|
if [ "$TABLE_COUNT" -lt 10 ]; then
|
||
|
|
echo "❌ Error: Too few tables created."
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo "🎉 Verification Complete. The V1 migrations are valid."
|