#!/bin/bash # Production Migration Script for GoClaw Control Center # This script runs database migrations on the production server # Usage: ./docker/migrate-production.sh set -e echo "[Migration] Starting production database migration..." # Check if docker-compose is available if ! command -v docker-compose &> /dev/null; then echo "[Migration] ERROR: docker-compose not found" exit 1 fi # Navigate to project root cd "$(dirname "$0")/.." echo "[Migration] Running drizzle-kit generate..." pnpm drizzle-kit generate echo "[Migration] Running drizzle-kit migrate..." pnpm drizzle-kit migrate echo "[Migration] Verifying tasks table creation..." if docker-compose exec -T mysql mysql -u root -p"${MYSQL_ROOT_PASSWORD}" "${MYSQL_DATABASE}" -e "SHOW TABLES LIKE 'tasks';" | grep -q tasks; then echo "[Migration] ✓ Tasks table created successfully" else echo "[Migration] ✗ Tasks table not found - migration may have failed" exit 1 fi echo "[Migration] Verifying tasks table structure..." docker-compose exec -T mysql mysql -u root -p"${MYSQL_ROOT_PASSWORD}" "${MYSQL_DATABASE}" -e "DESCRIBE tasks;" echo "[Migration] ✓ Production migration completed successfully!" echo "[Migration] Next steps:" echo " 1. Restart the application container: docker-compose restart app" echo " 2. Verify the application is running: docker-compose logs app" echo " 3. Test the tasks functionality in the UI"