53 lines
1.6 KiB
Bash
Executable File
53 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# Database Setup Script for Export Tests
|
|
# Creates test database and runs migrations
|
|
|
|
set -e
|
|
|
|
echo "=========================================="
|
|
echo "Export Tests Database Setup"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# Default test database URL
|
|
TEST_DB_URL="${TEST_DATABASE_URL:-postgresql://postgres:postgres@localhost:5432/dbis_core_test}"
|
|
|
|
echo "📦 Setting up test database..."
|
|
echo " Database URL: $TEST_DB_URL"
|
|
echo ""
|
|
|
|
# Extract database name from URL
|
|
DB_NAME=$(echo $TEST_DB_URL | sed -n 's/.*\/\([^?]*\).*/\1/p')
|
|
DB_HOST=$(echo $TEST_DB_URL | sed -n 's/.*@\([^:]*\):.*/\1/p')
|
|
DB_PORT=$(echo $TEST_DB_URL | sed -n 's/.*:\([0-9]*\)\/.*/\1/p')
|
|
DB_USER=$(echo $TEST_DB_URL | sed -n 's/.*:\/\/\([^:]*\):.*/\1/p')
|
|
|
|
echo " Database: $DB_NAME"
|
|
echo " Host: $DB_HOST"
|
|
echo " Port: ${DB_PORT:-5432}"
|
|
echo " User: $DB_USER"
|
|
echo ""
|
|
|
|
# Check if database exists
|
|
echo "🔍 Checking if database exists..."
|
|
if PGPASSWORD=$(echo $TEST_DB_URL | sed -n 's/.*:\/\/[^:]*:\([^@]*\)@.*/\1/p') psql -h "$DB_HOST" -p "${DB_PORT:-5432}" -U "$DB_USER" -lqt | cut -d \| -f 1 | grep -qw "$DB_NAME"; then
|
|
echo " ✅ Database '$DB_NAME' already exists"
|
|
else
|
|
echo " ⚠️ Database '$DB_NAME' does not exist"
|
|
echo " 💡 Create it manually: createdb -h $DB_HOST -p ${DB_PORT:-5432} -U $DB_USER $DB_NAME"
|
|
fi
|
|
|
|
echo ""
|
|
echo "📋 Running migrations on test database..."
|
|
export DATABASE_URL="$TEST_DB_URL"
|
|
npm run migrate
|
|
|
|
echo ""
|
|
echo "✅ Database setup complete!"
|
|
echo ""
|
|
echo "To run export tests:"
|
|
echo " export TEST_DATABASE_URL='$TEST_DB_URL'"
|
|
echo " npm test -- tests/unit/exports tests/integration/exports"
|
|
echo ""
|
|
|