codenuk_backend_mine/scripts/reset-migrations.sh
2025-10-10 08:56:39 +05:30

60 lines
1.5 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
# ========================================
# MIGRATION RESET UTILITY SCRIPT
# ========================================
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"
}
log "🔄 Migration Reset Utility"
log "This script will reset migration state to allow re-running migrations"
# Check if DATABASE_URL is set
if [ -z "${DATABASE_URL:-}" ]; then
log "ERROR: DATABASE_URL environment variable is required"
exit 1
fi
# Get confirmation from user
echo ""
echo "⚠️ WARNING: This will:"
echo " - Clear the schema_migrations table"
echo " - Remove the migration completion marker"
echo " - Allow migrations to run again on next docker compose up"
echo ""
echo " This will NOT delete your actual data tables."
echo ""
read -p "Are you sure you want to proceed? (y/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
log "Operation cancelled"
exit 0
fi
log "🗑️ Clearing migration state..."
# Connect to database and clear migration tracking
psql "${DATABASE_URL}" -c "
DROP TABLE IF EXISTS schema_migrations;
SELECT 'Migration tracking table dropped' as status;
" || {
log "ERROR: Failed to clear database migration state"
exit 1
}
# Remove migration marker file
MIGRATION_MARKER="/tmp/migrations-completed"
if [ -f "${MIGRATION_MARKER}" ]; then
rm -f "${MIGRATION_MARKER}"
log "📝 Removed migration completion marker"
else
log "📝 Migration completion marker not found (already clean)"
fi
log "✅ Migration state reset complete!"
log "💡 Next 'docker compose up' will re-run all migrations"