Migration Guide
This guide provides detailed instructions for migrating between Ferrocodex versions, handling data migrations, and managing breaking changes.
Overview
Migration planning is essential for maintaining data integrity and system availability when upgrading Ferrocodex. This guide covers migrations from version to version, including major releases with breaking changes.
Migration Principles
Data Preservation: No data loss during migration
Rollback Capability: Ability to revert if issues arise
Minimal Downtime: Efficient migration process
Compatibility: Handle version differences gracefully
Audit Trail: Maintain compliance records
Version Compatibility
Supported migration paths between Ferrocodex versions
From Version |
To Version |
Migration Type |
Downtime Required |
|---|---|---|---|
0.1.x |
0.2.x |
Automatic |
None |
0.2.x |
0.3.x |
Automatic |
None |
0.3.x |
0.4.x |
Semi-automatic |
Minimal |
0.4.x |
0.5.x |
Semi-automatic |
Minimal |
Any |
0.5.x |
Manual possible |
Extended |
Pre-Migration Planning
System Assessment
Before beginning migration:
Current State Documentation:
Current version number
Number of users
Number of assets
Database size
Custom configurations
Resource Requirements:
Available disk space (2x current)
Backup storage location
Migration window duration
Personnel availability
Risk Assessment:
Critical operations impact
User access requirements
Compliance considerations
Rollback triggers
Backup Procedures
Complete System Backup:
Stop Application:
# Windows taskkill /F /IM Ferrocodex.exe # macOS/Linux pkill Ferrocodex
Export Data:
Use Admin → Export → Full System
Include all options: - Assets and configurations - User accounts - Audit logs - Vault data (if applicable) - System settings
Database Backup:
# Locate database file # Windows: %APPDATA%\Ferrocodex\data.db # macOS: ~/Library/Application Support/Ferrocodex/data.db # Linux: ~/.config/ferrocodex/data.db # Create backup copy cp data.db data.db.backup-$(date +%Y%m%d)
Configuration Backup:
Copy settings files
Document customizations
Save license information
Migration Testing
Test Environment Setup:
Create isolated test system
Restore backup to test
Perform test migration
Verify functionality
Document issues
Plan remediation
Test Checklist:
[ ] Application starts correctly
[ ] Users can login
[ ] Assets display properly
[ ] Configurations accessible
[ ] Vault data intact (v0.4.0+)
[ ] Audit logs preserved
[ ] Performance acceptable
Version-Specific Migrations
Migrating to v0.4.0 (Asset Identity Vault)
Major Changes:
New Identity Vault feature
Enhanced permission system
Standalone credentials
Password rotation tracking
Migration Steps:
Pre-Migration:
Backup current system
Document vault requirements
Plan permission structure
Notify users of new features
Installation:
# 1. Stop current version # 2. Backup database # 3. Install new version # 4. Do NOT start yet
Database Migration:
Automatic on first launch
Creates vault tables
Migrates permissions
Adds rotation tracking
Post-Migration:
Verify vault creation ability
Test permission grants
Configure rotation policies
Train users on features
New Configuration Options:
{
"vault": {
"passwordPolicy": {
"minLength": 12,
"requireUppercase": true,
"requireNumbers": true,
"requireSpecial": true,
"historyDepth": 5
},
"rotation": {
"defaultDays": 90,
"warningDays": 7,
"criticalAssetDays": 30
}
}
}
Migrating to v0.5.0 (Asset Hierarchy Management)
Major Changes:
Complete asset hierarchy system with folders and devices
Advanced metadata management with custom fields
SQLite FTS5 full-text search implementation
Cybersecurity-compliant naming enforcement
Bulk operations and import/export enhancements
Drag-and-drop asset organization
Migration Process:
Pre-Migration Requirements:
Backup existing database
Document current asset structure
Plan hierarchy organization
Review naming compliance
Database Schema Updates:
The migration will automatically:
Add asset_type field (folder/device)
Create parent_id for hierarchy
Add metadata_json columns
Create FTS5 search tables
Build search indexes
Asset Name Compliance:
Non-compliant asset names will be automatically converted:
Original: "plc west 01" → Converted: "PLC-WEST-01" Original: "_sensor_01" → Converted: "SENSOR-01" Original: "ab" → Converted: "AB-001" (padded)
A migration report will list all renamed assets.
Hierarchy Organization:
Existing assets become root-level devices
Create folder structure post-migration
Use bulk move to organize
Set up metadata templates
Search Index Building:
Automatic index creation
Initial indexing may take 5-10 minutes
Progress shown in migration log
Verify search performance
Post-Migration Steps:
Organize Asset Hierarchy:
Create logical folder structure
Move devices into folders
Apply security classifications
Set up metadata schemas
Configure Metadata:
Define custom fields
Apply templates to asset types
Migrate existing data to fields
Set validation rules
Verify Search:
Test full-text search
Check metadata filtering
Validate performance
Train users on syntax
User Training:
Hierarchy navigation
Drag-and-drop operations
Advanced search features
Metadata management
Migrating from v0.3.x to v0.4.x
Major Changes:
Asset Identity Vault added
Password rotation management
Enhanced security features
Migration Process:
Export configurations
Install new version
Database migration (automatic)
Configure vault policies
Train users on vault features
Migrating from v0.2.x to v0.3.x
Major Changes:
Firmware management added
Enhanced branching
Performance improvements
Migration Process:
Export configurations
Install new version
Import configurations
Enable firmware features
Update user training
Migrating from v0.1.x to v0.2.x
Major Changes:
Improved audit system
Branch management
Enhanced security
Simple Upgrade:
Backup database
Install new version
Automatic migration
Verify functionality
Data Migration Procedures
Export/Import Method
For major version jumps or clean installations:
Export from Old Version:
1. Login as Administrator 2. Navigate to Settings → Export 3. Select "Full System Export" 4. Choose all options: ☑ Assets ☑ Configurations ☑ Users ☑ Audit Logs ☑ Settings 5. Save export file
Prepare New System:
Fresh installation
Initial admin setup
Basic configuration
Import to New Version:
1. Login to new system 2. Settings → Import 3. Select export file 4. Review import preview 5. Handle conflicts: - Skip existing - Overwrite - Merge 6. Execute import
Verification:
Count records
Spot check data
Test functionality
Validate permissions
Database Migration
For supported version upgrades:
Automatic Migration:
Install new version
Start application
Migration prompt appears
Confirm to proceed
Wait for completion
Verify success
Manual Migration:
If automatic fails:
# Run migration tool
Ferrocodex.exe --migrate --from 0.3.0 --to 0.4.0
# With verbose logging
Ferrocodex.exe --migrate --verbose --log migration.log
Migration Verification:
-- Check version
SELECT * FROM schema_version;
-- Verify record counts
SELECT COUNT(*) FROM assets;
SELECT COUNT(*) FROM configurations;
SELECT COUNT(*) FROM users;
Handling Migration Issues
Common Problems
Database Locked:
Symptom: Migration fails with “database locked” error
Solution:
Ensure application stopped
Check for hung processes
Restart system if needed
Retry migration
Insufficient Space:
Symptom: Migration fails partway
Solution:
Free disk space (need 2x database size)
Move to larger disk
Archive old data first
Retry migration
Permission Errors:
Symptom: Cannot write to database
Solution:
Run as administrator
Check file permissions
Verify ownership
Fix permissions
Schema Conflicts:
Symptom: Table already exists errors
Solution:
Backup current database
Use clean database
Import after migration
Merge manually if needed
Rollback Procedures
If migration fails:
Immediate Rollback:
# Stop application # Restore database backup mv data.db data.db.failed cp data.db.backup-20250127 data.db # Reinstall previous version # Start application
Data Recovery:
Export partial data
Manual correction
Selective import
Verify integrity
Investigation:
Review migration logs
Identify failure point
Plan remediation
Retry with fixes
Post-Migration Tasks
Verification Checklist
System Functionality:
[ ] Application starts normally
[ ] No error messages on startup
[ ] Dashboard loads correctly
[ ] Navigation works properly
Data Integrity:
[ ] User accounts present
[ ] All assets visible
[ ] Configurations intact
[ ] Audit history preserved
[ ] Vault data accessible (v0.4.0+)
Feature Testing:
[ ] Upload configuration
[ ] Create branch
[ ] User management
[ ] Audit log search
[ ] Export functions
[ ] Vault operations (v0.4.0+)
Performance:
[ ] Login time acceptable
[ ] Search responsive
[ ] Upload speeds normal
[ ] Database queries fast
User Communication
Pre-Migration Notice:
Subject: Ferrocodex Upgrade Scheduled
Team,
We will be upgrading Ferrocodex to version [X.X.X] on [DATE].
Downtime: [START] to [END]
New Features: [List key features]
Action Required: [Any user actions]
Please complete any critical work before [TIME].
Contact [ADMIN] with questions.
Post-Migration Notice:
Subject: Ferrocodex Upgrade Complete
Team,
Ferrocodex has been successfully upgraded to version [X.X.X].
New Features Available:
- [Feature 1]
- [Feature 2]
Training: [Schedule/resources]
Documentation: [Updated guides]
Report any issues to [ADMIN].
Training Updates
After migration:
Update Documentation:
New feature guides
Changed workflows
Updated screenshots
FAQ additions
Conduct Training:
Admin changes
New features
Best practices
Q&A session
Gather Feedback:
User experience
Performance issues
Feature requests
Training needs
Best Practices
Migration Planning
Schedule Wisely:
Low-activity periods
Maintenance windows
Holiday avoidance
Team availability
Communicate Early:
Two-week notice
Reminder emails
Feature previews
Training schedule
Test Thoroughly:
Full test migration
Performance testing
Feature validation
Rollback testing
Migration Execution
Follow Runbook:
Step-by-step procedures
Checkpoint verification
Go/no-go decisions
Communication plan
Monitor Progress:
Migration status
Error watching
Performance metrics
User reports
Document Everything:
Actions taken
Issues encountered
Resolutions applied
Lessons learned
Post-Migration
Monitor Closely:
First 24 hours critical
Performance tracking
Error monitoring
User feedback
Support Users:
Available for questions
Quick issue resolution
Training reinforcement
Positive messaging
Plan Next Steps:
Feature adoption
Process updates
Future migrations
Improvement ideas
Emergency Contacts
During migration:
Primary Admin: [Name, Contact]
Backup Admin: [Name, Contact]
Vendor Support: [Contact Info]
Emergency Line: [24/7 Number]
Keep this guide updated with each migration experience to improve future upgrades.