#!/bin/bash # Database Migration Runner for b0esche.cloud # Runs all SQL migrations in order set -e # Check for required environment variable if [ -z "$DATABASE_URL" ]; then echo "ERROR: DATABASE_URL environment variable not set" echo "Example: DATABASE_URL=postgres://user:pass@localhost:5432/dbname" exit 1 fi SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" echo "=== b0esche.cloud Database Migrations ===" echo "Database: $DATABASE_URL" echo # Function to run a single migration run_migration() { local file=$1 echo "Running: $(basename $file)" psql "$DATABASE_URL" -f "$file" -v ON_ERROR_STOP=1 if [ $? -eq 0 ]; then echo "✓ Success" else echo "✗ Failed" exit 1 fi } # Run migrations in order echo "Step 1/6: Initial schema..." run_migration "$SCRIPT_DIR/0001_initial.sql" echo echo "Step 2/6: Passkeys and authentication..." run_migration "$SCRIPT_DIR/0002_passkeys.sql" echo echo "Step 3/6: Files and storage..." run_migration "$SCRIPT_DIR/0003_files.sql" echo echo "Step 4/6: Organization ownership and slug scope..." run_migration "$SCRIPT_DIR/0004_org_owner_slug.sql" echo echo "Step 5/6: Organization invitations and join requests..." run_migration "$SCRIPT_DIR/0005_org_invitations.sql" echo echo "Step 6/6: Organization invite links..." run_migration "$SCRIPT_DIR/0006_org_invite_link.sql" echo echo "=== All migrations completed successfully! ==="