mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-16 03:39:41 +02:00
Move inactive projects out of active workspace: - bauntown (community website) - maerchenzauber (AI story generation) - memoro (voice memo app) - news (news aggregation) - nutriphi (nutrition tracking) - reader (reading app) - uload (URL shortener) - wisekeep (AI wisdom extraction) Update CLAUDE.md documentation: - Add presi to active projects - Document archived projects section - Update workspace configuration Archived apps can be re-activated by moving back to apps/ 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
6.2 KiB
6.2 KiB
Audio Path Standardization Migration
Overview
This migration standardizes all audio fields in the memos.source JSONB column to use audio_path instead of the legacy path field.
Current State Analysis
- Total memos with source data: 17,627
- Records ready for migration: 1,286 (7.3%)
- Records already using audio_path: 16,319 (92.6%)
- Blocking conflicts: 0 (no records have both fields)
- Records with empty paths: 0
Migration Status: ✅ READY TO PROCEED
Files Included
audio_path_migration.sql- Main migration scriptpre_migration_verification.sql- Verification queries to run BEFORE migrationpost_migration_verification.sql- Verification queries to run AFTER migrationMIGRATION_README.md- This documentation file
Pre-Migration Checklist
1. Backup Preparation
- Ensure database backup is recent (within 24 hours)
- Verify backup integrity
- Confirm backup restoration procedure is tested
2. Environment Verification
- Confirm you're connected to the correct database (memoro-prod)
- Verify you have necessary permissions (UPDATE, CREATE TABLE)
- Check database connectivity and stability
3. Pre-Migration Validation
-- Run the pre-migration verification queries
\i pre_migration_verification.sql
Expected results:
- 1,286 records ready for migration
- 0 blocking conflicts
- Migration status: "READY: Safe to proceed with migration"
4. Application Considerations
- Plan maintenance window if needed (recommended but not required)
- Notify team of migration timing
- Monitor application logs for any related issues
Migration Execution
Step 1: Run Pre-Migration Verification
\i pre_migration_verification.sql
Step 2: Execute Migration
\i audio_path_migration.sql
Step 3: Run Post-Migration Verification
\i post_migration_verification.sql
Expected Migration Behavior
What Will Happen
- Backup Creation: Automatic backup of all records to be modified
- Field Conversion: Convert
source.path→source.audio_path - Field Removal: Remove legacy
pathfield from source JSONB - Timestamp Update: Update
updated_attimestamp for audit trail - Verification: Comprehensive validation of migration success
What Will NOT Happen
- No data loss (backup created first)
- No downtime (operation is atomic)
- No changes to records already using
audio_path - No changes to non-audio records
Safety Features
✅ Safe Migration Design
- Atomic Transaction: All-or-nothing execution
- Automatic Backup: Creates backup table before any changes
- Idempotent: Can be run multiple times safely
- Validation: Extensive pre/post migration checks
- Rollback Ready: Complete rollback procedure included
⚠️ Potential Risks (Low)
- Brief table-level lock during UPDATE operation (~30-60 seconds)
- Small increase in database size due to backup table
- Application cache invalidation for updated records
Performance Expectations
- Execution Time: 30-60 seconds for ~1,300 records
- Lock Duration: Minimal (single UPDATE statement)
- Memory Usage: Low (set-based operations)
- Rollback Time: 10-20 seconds if needed
Rollback Procedure
If you need to rollback the migration:
-- Included in the main migration file, uncomment and run:
/*
BEGIN;
UPDATE memos
SET
source = b.source,
updated_at = now()
FROM memo_source_backup_audio_migration b
WHERE memos.id = b.id;
-- Verify rollback worked
SELECT COUNT(*) FROM memos WHERE source ? 'path';
COMMIT;
*/
Post-Migration Actions
Immediate (Within 1 hour)
- Run post-migration verification queries
- Spot-check application functionality
- Monitor error logs for any issues
- Verify API responses include correct audio paths
Short-term (Within 24 hours)
- Monitor application performance
- Check user-reported issues
- Validate audio playback functionality
- Review application metrics
Long-term (After 48 hours)
- Consider cleaning up backup table (optional)
- Update application documentation if needed
- Remove any temporary monitoring
Monitoring After Migration
Key Metrics to Watch
- Application error rates
- Audio playback success rates
- Database query performance
- User-reported issues
Verification Queries
-- Should return 0
SELECT COUNT(*) FROM memos WHERE source ? 'path';
-- Should match pre-migration total
SELECT COUNT(*) FROM memos WHERE source ? 'audio_path';
Cleanup (Optional)
After 48+ hours and confirming everything works correctly:
-- Optional: Remove backup table
DROP TABLE memo_source_backup_audio_migration;
Recommendation: Keep backup table for at least 1 week for extra safety.
Troubleshooting
Migration Fails
- Check the error message in the migration output
- Verify database permissions
- Check for unexpected data changes since pre-migration verification
- Contact database administrator if needed
Partial Success
- Check post-migration verification results
- Look for records still having 'path' field
- Run rollback if necessary
- Investigate root cause before retry
Performance Issues
- Monitor database locks and connections
- Check for application connection pool exhaustion
- Review slow query logs
- Consider running during low-traffic period
Support Information
Migration Created
- Date: 2025-08-25
- Purpose: Standardize audio path fields for consistency
- Impact: 1,286 records (~7.3% of total)
For Issues
- Check migration logs and verification query results
- Review application error logs
- Use rollback procedure if necessary
- Document any unexpected behavior for future migrations
Success Criteria
✅ Migration is successful when:
- 0 records have
source.pathfield - All converted records have
source.audio_pathfield - Backup table contains exactly 1,286 records
- All path values were transferred correctly
- Application continues to function normally
- Audio playback works as expected
This migration follows database best practices with comprehensive safety measures, verification procedures, and rollback capabilities.