3.7 KiB
3.7 KiB
Strapi Content Migration Guide
This guide will help you migrate all content from your old Strapi server to a new one.
Quick Start
Step 1: Set Up Environment Variables
Create a .env.local file in the project root (or set environment variables):
# Your new Strapi server URL
NEXT_PUBLIC_STRAPI_BASE_URL=https://your-new-strapi-server.com
# Migration script variables
OLD_STRAPI_URL=https://career.tech4bizsolutions.com
NEW_STRAPI_URL=https://your-new-strapi-server.com
NEW_STRAPI_API_TOKEN=your-api-token-here
Getting an API Token:
- Log into your new Strapi admin panel
- Go to Settings → API Tokens
- Create a new token with "Full access" or appropriate permissions
- Copy the token and add it to your
.env.localfile
Step 2: Run the Migration
You have three options:
Option A: Full Migration (Export + Import)
npm run migrate
Option B: Export Only (to review data first)
npm run migrate:export
This creates a scripts/strapi-export directory with JSON files containing all content.
Option C: Import Only (if you already exported)
npm run migrate:import
What Gets Migrated
The migration script handles these content types:
- schoolforschools - Main hero section content (used in
main-hero.tsx) - whyschoolforschools - Why SFS section content (used in
hero-section.tsx)
After Migration
-
Update your environment variable to point to the new server:
NEXT_PUBLIC_STRAPI_BASE_URL=https://your-new-strapi-server.com -
Restart your Next.js dev server to pick up the new environment variable:
npm run dev -
Verify the content by checking your website - both sections should now be pulling from the new Strapi server.
Important Notes
Media Files
- Media files (images) are NOT automatically migrated
- You'll need to:
- Export media files from the old Strapi server
- Upload them to the new Strapi media library
- Update any media references in the migrated content
Content Structure
- Make sure your new Strapi server has the same content type structure (fields, relations, etc.)
- The content types must exist in the new Strapi before running the import
Testing
- Always test the migration on a staging/test server first
- Verify all content appears correctly before switching production
Troubleshooting
"API Token Invalid" Error
- Verify the token is correct in your
.env.localfile - Check that the token has proper permissions in Strapi admin panel
- Ensure the token hasn't expired
"Content Type Not Found" Error
- Make sure the content types exist in your new Strapi server
- Verify the content type names match exactly (case-sensitive)
"Failed to Upload" Errors
- Check the console output for specific error messages
- Verify field types match between old and new Strapi
- Some fields may need manual adjustment (dates, relations, etc.)
Empty Export
- Verify the old Strapi URL is correct
- Check that the content types exist and have published content
- Ensure the old Strapi server is accessible
Manual Steps (if needed)
If the automated migration doesn't work, you can:
-
Export manually:
- Visit
https://old-server.com/api/schoolforschools?populate=* - Save the JSON response
- Repeat for
whyschoolforschools
- Visit
-
Import manually:
- Use Strapi admin panel to create entries
- Or use Strapi's import/export plugin if available
Support
For issues specific to:
- Migration script: Check
scripts/README.md - Strapi API: Refer to Strapi Documentation
- Next.js configuration: Check
next.config.mjsand environment variables