@havenengineering/migrate-contentful
v1.2.0
Published
Migration tooling for Contentful spaces
Downloads
3
Readme
migrate-contentful
Tooling to simplify migrating your content model in Contentful.
Installation
npm install -D @havenengineering/migrate-contentful
Usage
Config
The library expects the following environment variables to be set:
env|description
---|---
CONTENTFUL_SPACE_ID
|The ID of the Contentful space you're migrating
CONTENTFUL_MANAGEMENT_TOKEN
|An auth token for the Contentful Management API. Available in the Contentful UI.
CONTENTFUL_ENVIRONMENT
|The environment you'd like to run the migration on.
CONTENTFUL_LOCALE
|(Optional, default en-US
) The locale you'd like to run the migration on (must be available within your space).
If you have a .env
file in the root of your application, the variables will be set from there. Example .env
:
CONTENTFUL_SPACE_ID=abc123
CONTENTFUL_MANAGEMENT_TOKEN=secret-token
Make sure the .env
file is in your .gitignore
so you don't accidentally commit your secrets.
It's not recommended to set the CONTENTFUL_ENVIRONMENT
globally like this, because you likely want to specify it every time you interact with an environment. E.g. CONTENTFUL_ENVIRONMENT=master migrate-contentful pending
.
Available commands
This library uses umzug
's CLI to power it's migrations. For a list of available commands, run:
npx migrate-contentful -h
Customising migration paths
The default migrations folder is migrations/scripts
When creating a migration, you can use the --folder
flag to specify a custom folder to look for migrations in.
npx migrate-contentful create --folder <path> --name <name>
When running a migration npx create-contentful-migration up
, should pass a --glob
flag pointing to your custom folder.
npx migrate-contentful up --glob my-custom-folder/*.ext
Contributing
Contributions welcome!
Publishing the package
There is a GitHub action configured to publish the package on new version tags. To publish a new version of the package:
- Run
npm version {type}
e.g.npm version patch
to create a new version. Be sure to observe the semver rules. You'll notice a new tagvX.X.X
has been created. - Push your code and the new tag. You can run
git push --follow-tags
.
Useful links: