Files
drt/test_data/setup_test_environment.sh
2026-01-03 22:05:49 +07:00

97 lines
2.9 KiB
Bash
Executable File

#!/bin/bash
# Setup script for test SQL Server environment
set -e
echo "=========================================="
echo "SQL Server Test Environment Setup"
echo "=========================================="
echo ""
# Check if Docker is installed
if ! command -v docker &> /dev/null; then
echo "Error: Docker is not installed"
echo "Please install Docker first: https://docs.docker.com/get-docker/"
exit 1
fi
# Check if Docker Compose is available (either standalone or plugin)
if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then
echo "Error: Docker Compose is not installed"
echo "Please install Docker Compose first"
exit 1
fi
# Determine which compose command to use
if docker compose version &> /dev/null; then
COMPOSE_CMD="docker compose"
else
COMPOSE_CMD="docker-compose"
fi
echo "Step 1: Starting SQL Server containers..."
$COMPOSE_CMD -f docker-compose.test.yml up -d
echo ""
echo "Step 2: Waiting for SQL Server to be ready..."
echo "This may take 30-60 seconds..."
# Set default password if not provided
SA_PASSWORD=${SA_PASSWORD:-YourStrong!Passw0rd}
# Wait for baseline server
echo -n "Waiting for baseline server"
for i in {1..30}; do
if docker exec drt-sqlserver-baseline /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "$SA_PASSWORD" -C -Q "SELECT 1" &> /dev/null; then
echo " ✓"
break
fi
echo -n "."
sleep 2
done
# Wait for target server
echo -n "Waiting for target server"
for i in {1..30}; do
if docker exec drt-sqlserver-target /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "$SA_PASSWORD" -C -Q "SELECT 1" &> /dev/null; then
echo " ✓"
break
fi
echo -n "."
sleep 2
done
echo ""
echo "Step 3: Initializing baseline database..."
docker exec -i drt-sqlserver-baseline /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "$SA_PASSWORD" -C < test_data/init_baseline.sql
echo ""
echo "Step 4: Initializing target database..."
docker exec -i drt-sqlserver-target /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "$SA_PASSWORD" -C < test_data/init_target.sql
echo ""
echo "=========================================="
echo "Setup completed successfully!"
echo "=========================================="
echo ""
echo "SQL Server instances are running:"
echo " Baseline: localhost:1433"
echo " Target: localhost:1434"
echo ""
echo "Credentials:"
echo " Username: sa"
echo " Password: (set via SA_PASSWORD environment variable)"
echo ""
echo "Test databases:"
echo " Baseline: TestDB_Baseline"
echo " Target: TestDB_Target"
echo ""
echo "To test the connection:"
echo " drt discover --server localhost --database TestDB_Baseline --output config_test.yaml"
echo ""
echo "To stop the servers:"
echo " $COMPOSE_CMD -f docker-compose.test.yml down"
echo ""
echo "To stop and remove all data:"
echo " $COMPOSE_CMD -f docker-compose.test.yml down -v"
echo ""