You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
					
						
							6.8 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							6.8 KiB
						
					
					
				Complete Migration Checklist - MANDATORY STEPS
Overview
This checklist ensures NO migration steps are forgotten. Every component migration MUST complete ALL sections.
⚠️ CRITICAL: Triple Migration Pattern
🔑 The Complete Pattern (ALL 3 REQUIRED)
- Database Migration: Replace legacy 
databaseUtilcalls withPlatformServiceMixinmethods - SQL Abstraction: Replace raw SQL queries with service methods
 - Notification Migration: Replace 
$notify()calls with helper methods + constants 
❌ INCOMPLETE: Any migration missing one of these steps ✅ COMPLETE: All three patterns implemented
Pre-Migration Assessment
[ ] 1. Identify Legacy Patterns
- Count 
databaseUtilimports and calls - Count raw SQL queries (
SELECT,INSERT,UPDATE,DELETE) - Count 
$notify()calls - Count 
logConsoleAndDb()calls - Document total issues found
 
[ ] 2. Verify PlatformServiceMixin Setup
- Component already imports 
PlatformServiceMixin - Component already has 
mixins: [PlatformServiceMixin] - If missing, add mixin first
 
Phase 1: Database Migration
[ ] 3. Replace Database Utility Calls
- Remove 
import * as databaseUtil from "../db/databaseUtil" - Replace 
databaseUtil.retrieveSettingsForActiveAccount()→this.$accountSettings() - Replace 
databaseUtil.mapQueryResultToValues()→this.$mapQueryResultToValues() - Replace other 
databaseUtil.*calls with mixin equivalents 
[ ] 4. Replace Logging Calls
- Remove 
import { logConsoleAndDb } from "../db/index" - Replace 
logConsoleAndDb()→this.$logAndConsole() 
Phase 2: SQL Abstraction Migration
[ ] 5. Replace Raw Contact Operations
SELECT * FROM contacts WHERE did = ?→this.$getContact(did)DELETE FROM contacts WHERE did = ?→this.$deleteContact(did)UPDATE contacts SET x = ? WHERE did = ?→this.$updateContact(did, changes)INSERT INTO contacts→this.$insertContact(contact)
[ ] 6. Replace Other Raw SQL
SELECT * FROM settings→this.$accountSettings()UPDATE settings→this.$saveSettings(changes)- Generic queries → appropriate service methods
 - NO RAW SQL ALLOWED: All database operations through service layer
 
Phase 3: Notification Migration
[ ] 7. Add Notification Infrastructure
- Add import: 
import { createNotifyHelpers, TIMEOUTS } from "@/utils/notify" - Add property: 
notify!: ReturnType<typeof createNotifyHelpers>; - Add initialization: 
created() { this.notify = createNotifyHelpers(this.$notify); } 
[ ] 8. Add Notification Constants (if needed)
- Review notification messages for reusable patterns
 - Add constants to 
src/constants/notifications.ts - Import constants: 
import { NOTIFY_X, NOTIFY_Y } from "@/constants/notifications" 
[ ] 9. Replace Notification Calls
- Warning: 
this.$notify({type: "warning"})→this.notify.warning(CONSTANT.message, TIMEOUTS.LONG) - Error: 
this.$notify({type: "danger"})→this.notify.error(CONSTANT.message, TIMEOUTS.LONG) - Success: 
this.$notify({type: "success"})→this.notify.success(CONSTANT.message, TIMEOUTS.STANDARD) - Toast: 
this.$notify({type: "toast"})→this.notify.toast(title, message, TIMEOUTS.SHORT) - Confirm: 
this.$notify({type: "confirm"})→this.notify.confirm(message, onYes) - Standard patterns: Use 
this.notify.confirmationSubmitted(),this.notify.sent(), etc. 
[ ] 10. Constants vs Literal Strings
- Use constants for static, reusable messages
 - Use literal strings for dynamic messages with variables
 - Document decision for each notification call
 
Validation Phase
[ ] 11. Run Validation Script
- Execute: 
scripts/validate-migration.sh - MUST show: "Technically Compliant" (not "Mixed Pattern")
 - Zero legacy patterns detected
 
[ ] 12. Run Linting
- Execute: 
npm run lint-fix - Zero errors introduced
 - TypeScript compiles without errors
 
[ ] 13. Manual Code Review
- NO 
databaseUtilimports or calls - NO raw SQL queries (
SELECT,INSERT,UPDATE,DELETE) - NO 
$notify()calls with object syntax - NO 
logConsoleAndDb()calls - ALL database operations through service methods
 - ALL notifications through helper methods
 
Documentation Phase
[ ] 14. Update Migration Documentation
- Create 
docs/migration-testing/[COMPONENT]_MIGRATION.md - Document all changes made
 - Include before/after examples
 - Note validation results
 
[ ] 15. Update Testing Tracker
- Update 
docs/migration-testing/HUMAN_TESTING_TRACKER.md - Mark component as "Ready for Testing"
 - Include notes about migration completed
 
Human Testing Phase
[ ] 16. Test All Functionality
- Core functionality works correctly
 - Database operations function properly
 - Notifications display correctly with proper timing
 - Error scenarios handled gracefully
 - Cross-platform compatibility (web/mobile)
 
[ ] 17. Confirm Testing Complete
- User confirms component works correctly
 - Update testing tracker with results
 - Mark as "Human Tested" in validation script
 
Final Validation
[ ] 18. Comprehensive Check
- Component shows as "Technically Compliant" in validation
 - All manual testing passed
 - Zero legacy patterns remain
 - Documentation complete
 - Ready for production
 
🚨 FAILURE CONDITIONS
❌ INCOMPLETE MIGRATION if ANY of these remain:
databaseUtilimports or calls- Raw SQL queries (
SELECT,INSERT,UPDATE,DELETE) $notify()calls with object syntaxlogConsoleAndDb()calls- Missing notification helpers setup
 - Validation script shows "Mixed Pattern"
 
🎯 SUCCESS CRITERIA
✅ COMPLETE MIGRATION requires ALL:
- Zero legacy patterns detected
 - All database operations through service layer
 - All notifications through helper methods
 - Validation script shows "Technically Compliant"
 - Manual testing passed
 - Documentation complete
 
Templates and References
- Migration Template: 
docs/migration-templates/component-migration.md - Notification Constants: 
src/constants/notifications.ts - PlatformServiceMixin: 
src/utils/PlatformServiceMixin.ts - Notification Helpers: 
src/utils/notify.ts - Validation Script: 
scripts/validate-migration.sh 
⚠️ WARNING: This checklist exists because steps were previously forgotten. DO NOT skip any items. The triple migration pattern (Database + SQL + Notifications) is MANDATORY for all component migrations.
Author: Matthew Raymer
Date: 2024-01-XX
Purpose: Prevent migration oversight by cementing ALL requirements