123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- #!/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
|