Files
dbis_core-lite/tests/exports/setup-database.sh
2026-02-09 21:51:45 -08:00

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 ""