mirror of
https://github.com/wekan/wekan.git
synced 2025-12-16 15:30:13 +01:00
126 lines
3.2 KiB
Bash
Executable file
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
|