wekan/snap-src/bin/mongodb-migration-status
Lauri Ojansivu 0549bc0b0c Add Snap automatic upgrades.
Thanks to xet7 !
2025-10-11 00:25:16 +03:00

126 lines
3.2 KiB
Bash
Executable file

#!/bin/bash
# MongoDB Migration Status Script
# Provides status information about the migration process
# Source settings
source $SNAP/bin/wekan-read-settings
# Configuration
MIGRATION_STATUS="${SNAP_COMMON}/mongodb-migration-status.json"
MIGRATION_LOG="${SNAP_COMMON}/mongodb-migration-log.txt"
REVERT_FILE="${SNAP_COMMON}/revert-mongodb-migration.txt"
# Show migration status
show_status() {
if [ -f "$MIGRATION_STATUS" ]; then
echo "=== MongoDB Migration Status ==="
echo "Status: $(jq -r '.status' "$MIGRATION_STATUS" 2>/dev/null || echo "unknown")"
echo "Progress: $(jq -r '.step' "$MIGRATION_STATUS" 2>/dev/null || echo "0")/$(jq -r '.total_steps' "$MIGRATION_STATUS" 2>/dev/null || echo "0") steps"
echo "Percentage: $(jq -r '.percentage' "$MIGRATION_STATUS" 2>/dev/null || echo "0")%"
echo "Current Step: $(jq -r '.description' "$MIGRATION_STATUS" 2>/dev/null || echo "Unknown")"
echo "Last Updated: $(jq -r '.timestamp' "$MIGRATION_STATUS" 2>/dev/null || echo "Unknown")"
echo ""
if [ -f "$MIGRATION_LOG" ]; then
echo "=== Recent Migration Log ==="
tail -10 "$MIGRATION_LOG"
fi
else
echo "No migration in progress or completed."
fi
}
# Show migration log
show_log() {
if [ -f "$MIGRATION_LOG" ]; then
echo "=== Full Migration Log ==="
cat "$MIGRATION_LOG"
else
echo "No migration log found."
fi
}
# Check if migration is needed
check_needed() {
if [ -d "${SNAP_COMMON}/wekan" ] && [ ! -f "${SNAP_COMMON}/mongodb-version-7" ]; then
echo "Migration needed: MongoDB 3 data detected"
return 0
else
echo "No migration needed"
return 1
fi
}
# Start migration
start_migration() {
if check_needed; then
echo "Starting MongoDB migration..."
$SNAP/bin/mongodb-migrate
else
echo "Migration not needed or already completed"
fi
}
# Request revert
request_revert() {
echo "Requesting migration revert..."
touch "$REVERT_FILE"
echo "Revert requested. Restart Wekan to apply revert."
}
# Clear migration status
clear_status() {
echo "Clearing migration status..."
rm -f "$MIGRATION_STATUS"
rm -f "$MIGRATION_LOG"
rm -f "$REVERT_FILE"
echo "Migration status cleared."
}
# Show help
show_help() {
echo "MongoDB Migration Status Tool"
echo ""
echo "Usage: $0 [command]"
echo ""
echo "Commands:"
echo " status - Show current migration status (default)"
echo " log - Show full migration log"
echo " check - Check if migration is needed"
echo " start - Start migration if needed"
echo " revert - Request migration revert"
echo " clear - Clear migration status"
echo " help - Show this help"
echo ""
}
# Main execution
case "${1:-status}" in
"status")
show_status
;;
"log")
show_log
;;
"check")
check_needed
;;
"start")
start_migration
;;
"revert")
request_revert
;;
"clear")
clear_status
;;
"help"|"-h"|"--help")
show_help
;;
*)
echo "Unknown command: $1"
show_help
exit 1
;;
esac