mirror of
https://github.com/wekan/wekan.git
synced 2026-02-10 02:04:20 +01:00
139 lines
4.2 KiB
Bash
139 lines
4.2 KiB
Bash
#!/bin/bash
|
|
|
|
# Verification script for WeKan migration system improvements
|
|
# This script checks that all 13 migrations have proper implementations
|
|
|
|
echo "=========================================="
|
|
echo "WeKan Migration System Verification Report"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
FILE="server/cronMigrationManager.js"
|
|
|
|
# Check 1: Default case changed to false
|
|
echo "✓ Check 1: Default case in isMigrationNeeded() should return false"
|
|
if grep -q "default:" "$FILE" && grep -A 1 "default:" "$FILE" | grep -q "return false"; then
|
|
echo " PASS: Default case returns false"
|
|
else
|
|
echo " FAIL: Default case may not return false"
|
|
fi
|
|
echo ""
|
|
|
|
# Check 2: All 13 migrations have case statements
|
|
MIGRATIONS=(
|
|
"lowercase-board-permission"
|
|
"change-attachments-type-for-non-images"
|
|
"card-covers"
|
|
"use-css-class-for-boards-colors"
|
|
"denormalize-star-number-per-board"
|
|
"add-member-isactive-field"
|
|
"ensure-valid-swimlane-ids"
|
|
"add-swimlanes"
|
|
"add-checklist-items"
|
|
"add-card-types"
|
|
"migrate-attachments-collectionFS-to-ostrioFiles"
|
|
"migrate-avatars-collectionFS-to-ostrioFiles"
|
|
"migrate-lists-to-per-swimlane"
|
|
)
|
|
|
|
echo "✓ Check 2: All 13 migrations have isMigrationNeeded() checks"
|
|
missing=0
|
|
for migration in "${MIGRATIONS[@]}"; do
|
|
if grep -q "'$migration'" "$FILE"; then
|
|
echo " ✓ $migration"
|
|
else
|
|
echo " ✗ $migration - MISSING"
|
|
((missing++))
|
|
fi
|
|
done
|
|
if [ $missing -eq 0 ]; then
|
|
echo " PASS: All 13 migrations have checks"
|
|
else
|
|
echo " FAIL: $missing migrations are missing"
|
|
fi
|
|
echo ""
|
|
|
|
# Check 3: All migrations have execute handlers
|
|
echo "✓ Check 3: All migrations have execute() handlers"
|
|
execute_methods=(
|
|
"executeDenormalizeStarCount"
|
|
"executeEnsureValidSwimlaneIds"
|
|
"executeLowercasePermission"
|
|
"executeComprehensiveBoardMigration"
|
|
"executeAttachmentTypeStandardization"
|
|
"executeCardCoversMigration"
|
|
"executeMemberActivityMigration"
|
|
"executeAddSwimlanesIdMigration"
|
|
"executeAddCardTypesMigration"
|
|
"executeAttachmentMigration"
|
|
"executeAvatarMigration"
|
|
"executeBoardColorMigration"
|
|
"executeChecklistItemsMigration"
|
|
)
|
|
|
|
missing_methods=0
|
|
for method in "${execute_methods[@]}"; do
|
|
if grep -q "async $method" "$FILE"; then
|
|
echo " ✓ $method()"
|
|
else
|
|
echo " ✗ $method() - MISSING"
|
|
((missing_methods++))
|
|
fi
|
|
done
|
|
if [ $missing_methods -eq 0 ]; then
|
|
echo " PASS: All execute methods exist"
|
|
else
|
|
echo " FAIL: $missing_methods execute methods are missing"
|
|
fi
|
|
echo ""
|
|
|
|
# Check 4: Checklists model is imported
|
|
echo "✓ Check 4: Checklists model is imported"
|
|
if grep -q "import Checklists from" "$FILE"; then
|
|
echo " PASS: Checklists imported"
|
|
else
|
|
echo " FAIL: Checklists not imported"
|
|
fi
|
|
echo ""
|
|
|
|
# Check 5: No simulated execution for unknown migrations
|
|
echo "✓ Check 5: No simulated execution (removed fallback)"
|
|
if ! grep -q "Simulate step execution with progress updates for other migrations" "$FILE"; then
|
|
echo " PASS: Simulated execution removed"
|
|
else
|
|
echo " WARN: Old simulation code may still exist"
|
|
fi
|
|
echo ""
|
|
|
|
# Check 6: Real implementations (sample check)
|
|
echo "✓ Check 6: Sample real implementations (checking for database queries)"
|
|
implementations=0
|
|
if grep -q "Boards.find({" "$FILE"; then
|
|
((implementations++))
|
|
echo " ✓ Real Boards.find() queries found"
|
|
fi
|
|
if grep -q "Cards.find({" "$FILE"; then
|
|
((implementations++))
|
|
echo " ✓ Real Cards.find() queries found"
|
|
fi
|
|
if grep -q "Users.find({" "$FILE"; then
|
|
((implementations++))
|
|
echo " ✓ Real Users.find() queries found"
|
|
fi
|
|
if grep -q "Checklists.find({" "$FILE"; then
|
|
((implementations++))
|
|
echo " ✓ Real Checklists.find() queries found"
|
|
fi
|
|
echo " PASS: $implementations real database implementations found"
|
|
echo ""
|
|
|
|
echo "=========================================="
|
|
echo "Summary: All migration improvements applied!"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo "Next steps:"
|
|
echo "1. Test with fresh WeKan installation"
|
|
echo "2. Verify no migrations run (all marked 'not needed')"
|
|
echo "3. Test with old database with legacy data"
|
|
echo "4. Verify migrations detect and run with real progress"
|
|
echo ""
|