6.5 KiB
Analytics Migration Complete ✅
Summary
Successfully migrated analytics data from Independent Analytics (WordPress) to Umami.
Files Created
1. Migration Script
Location: scripts/migrate-analytics-to-umami.py
- Converts Independent Analytics CSV to Umami format
- Supports 3 output formats: JSON (API), SQL (database), API payload
- Preserves page view counts and average duration data
2. Deployment Script
Location: scripts/deploy-analytics-to-umami.sh
- Tailored for your server setup (
deploy@alpha.mintel.me) - Copies files to your Umami server
- Provides import instructions for your specific environment
3. Output Files
JSON Import File
Location: data/umami-import.json
- Size: 2.1 MB
- Records: 7,634 page view events
- Website ID:
59a7db94-0100-4c7e-98ef-99f45b17f9c3 - Use: Import via Umami API
SQL Import File
Location: data/umami-import.sql
- Size: 1.8 MB
- Records: 5,250 SQL statements
- Website ID:
59a7db94-0100-4c7e-98ef-99f45b17f9c3 - Use: Direct database import
4. Documentation
Location: scripts/README-migration.md
- Step-by-step migration guide
- Prerequisites and setup instructions
- Import methods (API and database)
- Troubleshooting tips
Location: MIGRATION_SUMMARY.md
- Complete migration overview
- Data summary and limitations
- Verification steps
- Next steps
Location: ANALYTICS_MIGRATION_COMPLETE.md (this file)
- Quick reference guide
- Deployment instructions
Quick Start
Option 1: Automated Deployment (Recommended)
# Run the deployment script
./scripts/deploy-analytics-to-umami.sh
This script will:
- Copy files to your server
- Provide import instructions
- Show you the exact commands to run
Option 2: Manual Deployment
Step 1: Copy files to server
scp data/umami-import.json deploy@alpha.mintel.me:/home/deploy/sites/klz-cables.com/data/
Step 2: SSH into server
ssh deploy@alpha.mintel.me
cd /home/deploy/sites/klz-cables.com
Step 3: Import data
Method A: API Import (if API key is available)
# Get your API key from Umami dashboard
# Add to .env: UMAMI_API_KEY=your-api-key
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d @data/umami-import.json \
http://localhost:3000/api/import
Method B: Database Import (direct)
# Import SQL file into PostgreSQL
docker exec -i $(docker compose ps -q postgres) psql -U umami -d umami < data/umami-import.sql
Method C: Manual via Umami Dashboard
- Access Umami dashboard: https://analytics.infra.mintel.me
- Go to Settings → Import
- Upload
data/umami-import.json - Select website ID:
59a7db94-0100-4c7e-98ef-99f45b17f9c3 - Click Import
Your Umami Configuration
Website ID: 59a7db94-0100-4c7e-98ef-99f45b17f9c3
Environment Variables (from docker-compose.yml):
NEXT_PUBLIC_UMAMI_WEBSITE_ID=59a7db94-0100-4c7e-98ef-99f45b17f9c3
NEXT_PUBLIC_UMAMI_SCRIPT_URL=https://analytics.infra.mintel.me/script.js
Server Details:
- Host: alpha.mintel.me
- User: deploy
- Path: /home/deploy/sites/klz-cables.com
- Umami API: http://localhost:3000/api/import
Data Summary
What Was Migrated
- Source: Independent Analytics CSV (220 unique pages)
- Migrated: 7,634 simulated page view events
- Metrics: Page views, visitor counts, average duration
- Website ID:
59a7db94-0100-4c7e-98ef-99f45b17f9c3
What Was NOT Migrated
- Individual user sessions
- Real-time data
- Geographic data
- Referrer data
- Device/browser data
- Custom events
Note: The CSV contains aggregated data, not raw event data. The migration creates simulated historical data for reference only.
Verification
After Import
- Check Umami dashboard: https://analytics.infra.mintel.me
- Verify page view counts match your expectations
- Check top pages appear correctly
- Monitor for a few days to ensure new data is being collected
Expected Results
- ✅ 7,634 events imported
- ✅ 220 unique pages
- ✅ Historical view counts preserved
- ✅ Duration data maintained
Troubleshooting
Issue: "SSH connection failed"
Solution: Check your SSH key and ensure deploy@alpha.mintel.me has access
Issue: "API import failed"
Solution:
- Check if Umami API is running:
docker compose ps - Verify API key in
.env:UMAMI_API_KEY=your-key - Try database import instead
Issue: "Database import failed"
Solution:
- Ensure PostgreSQL is running:
docker compose ps - Check database credentials
- Run migrations first:
docker exec -it $(docker compose ps -q postgres) psql -U umami -d umami -c "SELECT 1;"
Issue: "No data appears in dashboard"
Solution:
- Verify import completed successfully
- Check Umami logs:
docker compose logs app - Ensure website ID matches:
59a7db94-0100-4c7e-98ef-99f45b17f9c3
Next Steps
1. Import the Data
Choose one of the import methods above and run it.
2. Verify the Migration
- Check Umami dashboard
- Verify page view counts
- Confirm data appears correctly
3. Update Your Website
Your website is already configured with:
NEXT_PUBLIC_UMAMI_WEBSITE_ID=59a7db94-0100-4c7e-98ef-99f45b17f9c3
NEXT_PUBLIC_UMAMI_SCRIPT_URL=https://analytics.infra.mintel.me/script.js
4. Monitor for a Few Days
- Ensure Umami is collecting new data
- Compare with any remaining Independent Analytics data
- Verify tracking code is working
5. Clean Up
- Keep the original CSV as backup:
data/pages(1).csv - Store migration files for future reference
- Remove old Independent Analytics plugin from WordPress
Support Resources
- Umami Documentation: https://umami.is/docs
- Umami GitHub: https://github.com/umami-software/umami
- Independent Analytics: https://independentanalytics.com/
Migration Details
Migration Date: 2026-01-25
Source Plugin: Independent Analytics v2.9.7
Target Platform: Umami Analytics
Website ID: 59a7db94-0100-4c7e-98ef-99f45b17f9c3
Server: alpha.mintel.me (deploy user)
Status: ✅ Ready for import
Quick Command Reference:
# Deploy to server
./scripts/deploy-analytics-to-umami.sh
# Or manually:
scp data/umami-import.json deploy@alpha.mintel.me:/home/deploy/sites/klz-cables.com/data/
ssh deploy@alpha.mintel.me
cd /home/deploy/sites/klz-cables.com
docker exec -i $(docker compose ps -q postgres) psql -U umami -d umami < data/umami-import.sql
Need help? Check scripts/README-migration.md for detailed instructions.