Fix Problems When Moving from Other Consent Solutions
Pre-Migration Data Assessment
Step 1: Analyze Source Plugin Data
`
SLOS → Migration → Assessment → Source Analysis
`
Supported Source Plugins:
`json
{
“cookie_notice”: {
“detected”: true,
“version”: “2.4.2”,
“datatables”: [“wpcn_cookies”],
“settings_found”: true,
“estimated_records”: 15420
},
“gdprcookieconsent”: {
“detected”: false,
“version”: null,
“data_tables”: [],
“settings_found”: false
},
“complianz”: {
“detected”: true,
“version”: “6.4.0”,
“datatables”: [“wpcmplzcookies”, “wpcmplz_services”],
“settings_found”: true,
“estimated_records”: 8750
}
}
`
Step 2: Check Data Compatibility
`
SLOS → Migration → Assessment → Compatibility Check
`
Compatibility Report:
`json
{
“datamappingscore”: 85,
“potential_issues”: [
{
“type”: “category_mismatch”,
“severity”: “medium”,
“description”: “Source plugin uses different cookie categories”,
“solution”: “Manual category mapping required”
},
{
“type”: “dateformatinconsistency”,
“severity”: “low”,
“description”: “Consent timestamps in different formats”,
“solution”: “Automatic conversion available”
}
],
“estimatedmigrationtime”: “45 minutes”,
“risk_level”: “low”
}
`
Migration Preparation
Step 1: Create Full Backup
`
SLOS → Migration → Backup → Create Migration Backup
`
Backup Configuration:
`json
{
“backupscope”: “fullsystem”,
“includesourcedata”: true,
“includewordpressdata”: true,
“compression”: “gzip”,
“encryption”: true,
“storage_location”: “/wp-content/uploads/migration-backups/”,
“retention_days”: 30
}
`
Step 2: Test Migration Environment
`
SLOS → Migration → Testing → Setup Test Environment
`
Test Environment Setup:
- Creates staging copy of site
- Installs SLOS in test environment
- Imports sample data for testing
- Configures test integrations
- Drag and drop category assignment
- Preview affected cookies
- Test mapping with sample data
- Bulk mapping operations
- Save mapping templates
- [x] Consent banner displays correctly
- [x] Existing consents are recognized
- [x] New consents are recorded
- [x] Cookie categories work properly
- [x] Historical data is accessible
- [x] Reports include migrated data
- Deactivate SLOS plugin
- Restore from pre-migration backup
- Reactivate source plugin
- Verify source plugin functionality
- Notify users of temporary disruption
- Records processed per minute
- Memory usage
- Database connection status
- Error rate
- Estimated completion time
- Backup individual site
- Migrate site-specific data
- Test site functionality
- Move to next site
- Network-wide validation
- Migration Guide
- Data Export Procedures
- Import Troubleshooting
- Migration support hotline
- Data recovery services
- Plugin compatibility experts
- Emergency rollback assistance
Data Export Issues
Step 1: Fix Export Permissions
`
SLOS → Migration → Export → Permission Check
`
Permission Issues:
`json
{
“database_permissions”: {
“select_granted”: true,
“filewritegranted”: false,
“issue”: “Cannot write export files to /wp-content/uploads/”
},
“filesystemfixes”: [
“Change upload directory permissions to 755”,
“Ensure web server user owns upload directory”,
“Check disk space availability (2.3GB required)”
]
}
`
Step 2: Resolve Export Errors
`bash
Fix file permissions
sudo chown -R www-data:www-data /var/www/html/wp-content/uploads/
sudo chmod -R 755 /var/www/html/wp-content/uploads/
Check disk space
df -h /var/www/html/wp-content/uploads/
Test file creation
touch /var/www/html/wp-content/uploads/test-export.txt
`
Step 3: Handle Large Data Sets
`
SLOS → Migration → Export → Large Dataset Handling
`
Large Dataset Options:
`json
{
“chunk_size”: 1000,
“memory_limit”: “256M”,
“time_limit”: 300,
“progress_tracking”: true,
“resume_capability”: true,
“compressionduringexport”: true
}
`
Data Import Problems
Step 1: Validate Import Files
`
SLOS → Migration → Import → File Validation
`
File Validation Results:
`json
{
“consentdatajson”: {
“valid”: true,
“record_count”: 15420,
“size_mb”: 45.2,
“encoding”: “UTF-8”
},
“cookiesettingsjson”: {
“valid”: false,
“error”: “Invalid JSON structure at line 1250”,
“fix_available”: true
},
“userpreferencescsv”: {
“valid”: true,
“record_count”: 3240,
“columns_mapped”: 8,
“dataqualityscore”: 92
}
}
`
Step 2: Fix Import Errors
`
SLOS → Migration → Import → Error Resolution
`
Common Import Fixes:
`json
{
“jsonsyntaxerrors”: {
“auto_fix”: true,
“backup_original”: true
},
“encoding_issues”: {
“converttoutf8″: true,
“handlespecialchars”: true
},
“duplicate_records”: {
“detectionmethod”: “hashcomparison”,
“resolutionstrategy”: “skipduplicates”
},
“missingrequiredfields”: {
“add_defaults”: true,
“field_mapping”: {
“oldfield”: “newfield”
}
}
}
`
Step 3: Handle Data Conflicts
`sql
— Resolve data conflicts during import
INSERT INTO wpslosconsentlog (userid, consentcategories, consenttimestamp, source)
SELECT
COALESCE(slos.userid, source.userid) as user_id,
CASE
WHEN slos.consenttimestamp > source.consenttimestamp THEN slos.consent_categories
ELSE source.mapped_categories
END as consent_categories,
GREATEST(slos.consenttimestamp, source.consenttimestamp) as consent_timestamp,
‘migrated’ as source
FROM sourceconsentdata source
LEFT JOIN wpslosconsentlog slos ON slos.userid = source.user_id
ON DUPLICATE KEY UPDATE
consentcategories = VALUES(consentcategories),
consenttimestamp = VALUES(consenttimestamp);
`
Category Mapping Issues
Step 1: Review Category Mappings
`
SLOS → Migration → Categories → Mapping Review
`
Category Mapping Table:
`json
{
“sourceplugin”: “cookienotice”,
“mappings”: {
“necessary”: {
“slos_category”: “essential”,
“confidence”: 100,
“auto_mapped”: true
},
“analytics”: {
“slos_category”: “analytics”,
“confidence”: 95,
“auto_mapped”: true
},
“marketing”: {
“slos_category”: “marketing”,
“confidence”: 90,
“requires_review”: true,
“reason”: “May include social media cookies”
},
“unmapped_category”: {
“slos_category”: null,
“confidence”: 0,
“actionrequired”: “manualmapping”
}
}
}
`
Step 2: Manual Category Mapping
`
SLOS → Migration → Categories → Manual Mapping
`
Manual Mapping Interface:
Step 3: Validate Mappings
`javascript
// Validate category mappings
function validateCategoryMappings(mappings) {
const validation = {
unmapped_cookies: [],
conflicting_mappings: [],
datalosswarnings: []
};
// Check for unmapped cookies
mappings.forEach(mapping => {
if (!mapping.slos_category) {
validation.unmappedcookies.push(mapping.sourcecategory);
}
});
// Check for potential data loss
mappings.forEach(mapping => {
if (mapping.confidence < 80) {
validation.datalosswarnings.push({
category: mapping.source_category,
confidence: mapping.confidence
});
}
});
return validation;
}
`
Consent Data Conversion Problems
Step 1: Handle Format Inconsistencies
`
SLOS → Migration → Data Conversion → Format Check
`
Format Conversion Issues:
`json
{
“timestamp_formats”: [
{
“source_format”: “Y-m-d H:i:s”,
“target_format”: “ISO8601”,
“conversion_success”: true,
“records_affected”: 15420
}
],
“consent_structure”: [
{
“sourcestructure”: “serializedarray”,
“targetstructure”: “jsonarray”,
“conversion_success”: true,
“records_affected”: 15420
}
],
“user_identifiers”: [
{
“sourcetype”: “emailhash”,
“targettype”: “userid”,
“conversion_success”: false,
“error”: “Cannot reverse email hashes”,
“solution”: “Use anonymous user IDs”
}
]
}
`
Step 2: Fix Conversion Errors
`php
// Handle consent data conversion
function convertConsentData($sourceData, $sourcePlugin) {
$convertedData = [];
foreach ($sourceData as $record) {
$convertedRecord = [
‘userid’ => convertUserId($record[‘userid’], $sourcePlugin),
‘consent_timestamp’ => convertTimestamp($record[‘timestamp’], $sourcePlugin),
‘consent_categories’ => convertCategories($record[‘categories’], $sourcePlugin),
‘ipaddress’ => $record[‘ipaddress’] ?? null,
‘useragent’ => $record[‘useragent’] ?? null,
‘source’ => ‘migratedfrom‘ . $sourcePlugin
];
// Validate converted record
if (validateConvertedRecord($convertedRecord)) {
$convertedData[] = $convertedRecord;
} else {
logConversionError($record, $convertedRecord);
}
}
return $convertedData;
}
`
Step 3: Data Quality Assurance
`sql
— Quality assurance queries
SELECT
COUNT(*) as total_records,
SUM(CASE WHEN consentcategories IS NULL THEN 1 ELSE 0 END) as nullcategories,
SUM(CASE WHEN consenttimestamp IS NULL THEN 1 ELSE 0 END) as nulltimestamps,
SUM(CASE WHEN JSONVALID(consentcategories) = 0 THEN 1 ELSE 0 END) as invalid_json
FROM wpslosconsent_log
WHERE source LIKE ‘migratedfrom%’;
`
Post-Migration Validation
Step 1: Compare Data Counts
`
SLOS → Migration → Validation → Data Comparison
`
Migration Validation Report:
`json
{
“source_records”: 15420,
“imported_records”: 15415,
“failed_imports”: 5,
“data_integrity”: “98.5%”,
“category_distribution”: {
“essential”: 15420,
“analytics”: 12450,
“marketing”: 8930,
“preferences”: 6780
},
“date_range”: {
“oldest_record”: “2023-01-15”,
“newest_record”: “2025-12-31”
}
}
`
Step 2: Test Functionality
`
SLOS → Migration → Validation → Functional Testing
`
Functional Tests:
Rollback Procedures
Step 1: Emergency Rollback
`
SLOS → Migration → Rollback → Emergency Rollback
`
Rollback Process:
Step 2: Partial Rollback
`
SLOS → Migration → Rollback → Selective Rollback
`
Selective Rollback Options:
`json
{
“rollbackscope”: “dataonly”,
“preserve_settings”: true,
“preserve_customizations”: true,
“restoresourceplugin”: false,
“data_cleanup”: {
“removeslostables”: false,
“archiveslosdata”: true
}
}
`
Performance Issues During Migration
Step 1: Optimize Migration Performance
`
SLOS → Migration → Performance → Optimization Settings
`
Performance Optimizations:
`json
{
“batch_size”: 500,
“memory_limit”: “512M”,
“maxexecutiontime”: 600,
“disableindexesduring_import”: true,
“rebuildindexesafter_import”: true,
“progress_reporting”: true
}
`
Step 2: Monitor Migration Progress
`
SLOS → Migration → Performance → Progress Monitor
`
Migration Metrics:
Multi-Site Migration Issues
Step 1: Network Migration Setup
`
SLOS → Migration → Multi-Site → Network Configuration
`
Multi-Site Migration:
`json
{
“network_migration”: true,
“site_count”: 5,
“shareddatatables”: true,
“sitespecificsettings”: true,
“sequential_migration”: true,
“rollbackpersite”: true
}
`
Step 2: Site-by-Site Migration
`
SLOS → Migration → Multi-Site → Site Migration
`
Per-Site Process:
Support Resources
Documentation
Help
Share this article
Still need help?
Our support team is ready to assist you with personalized guidance for your workspace.