Migrate from Contentful to Sanity
MIT License
This package liberates Contentful spaces, creating Sanity projects and schemas as it goes.
npm i -g contentful-to-sanity
Or use it on demand with npx
:
npx contentful-to-sanity@latest --help
npm create sanity@latest --template clean --create-project "Your Project Name" --dataset production --output-path ./migrate
dataset.ndjson
file for the later import step:npx contentful-to-sanity@latest -s <space-id> -t <management-token> -a <access-token> ./migrate
cd ./migrate && npx sanity dataset import ./dataset.ndjson
./migrate/sanity.config.ts
If you chose the clean
template it should look like this
import {defineConfig} from 'sanity'
import {deskTool} from 'sanity/desk'
import {visionTool} from '@sanity/vision'
import {schemaTypes} from './schemas'
export default defineConfig({
name: 'default',
title: '<project-name>',
projectId: '<project-id>',
dataset: '<dataset>',
plugins: [deskTool(), visionTool()],
schema: {
types: schemaTypes,
},
})
Now replace the schemaTypes
import with the generated one:
import {defineConfig} from 'sanity'
import {deskTool} from 'sanity/desk'
import {visionTool} from '@sanity/vision'
-import {schemaTypes} from './schemas'
+import {types as schemaTypes} from './schema'
export default defineConfig({
name: 'default',
title: '<project-name>',
npm dev
You don't have to wait for the npx sanity dataset import ./migrate/dataset.ndjson
job to finish before the Studio is ready for use. The Studio will keep up to speed with the progress of the import job in real-time.
For more information on the available commands and their options, run contentful-to-sanity --help
.
MIT © Sanity.io