# 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):

```env
# 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:**
1. Log into your new Strapi admin panel
2. Go to Settings → API Tokens
3. Create a new token with "Full access" or appropriate permissions
4. Copy the token and add it to your `.env.local` file

### Step 2: Run the Migration

You have three options:

#### Option A: Full Migration (Export + Import)
```bash
npm run migrate
```

#### Option B: Export Only (to review data first)
```bash
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)
```bash
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

1. **Update your environment variable** to point to the new server:
   ```env
   NEXT_PUBLIC_STRAPI_BASE_URL=https://your-new-strapi-server.com
   ```

2. **Restart your Next.js dev server** to pick up the new environment variable:
   ```bash
   npm run dev
   ```

3. **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:
  1. Export media files from the old Strapi server
  2. Upload them to the new Strapi media library
  3. 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.local` file
- 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:

1. **Export manually:**
   - Visit `https://old-server.com/api/schoolforschools?populate=*`
   - Save the JSON response
   - Repeat for `whyschoolforschools`

2. **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](https://docs.strapi.io)
- **Next.js configuration**: Check `next.config.mjs` and environment variables


