Serverless plugin for migrate

serverless npm version

This is a plugin for the Serverless framework that allows you to manage and run database-agnostic migrations. To do so, it works on top of migrate.

Features

With this plugin you can

  • Make the commands of migrate available via the serverless CLI.
  • Be aware of the environment variables configured in your serverless.yml.
  • Add the env variable SERVERLESS_ROOT_PATH which points to the root directory of your project.
  • Configure aspects of your migration using your serverless.yml: no need to specify them as options with the CLI.
  • Set values to env variables just for the migration context.
  • Specify an custom character indicator of the last run migration.

Basically, these migrations can do anything that involves applying I/O changes and undo them. Watch the CHANGELOG to see what has been added to the date.

Quick start

To get into details, check out the example project of this repository. It contains a README with an explanation about all the valid commands and configuration variables you can use. For starters, this is what you must do to start working right away with migrations:

  1. Install serverless-migrate-plugin in your project:
npm i serverless-migrate-plugin
  1. Add it to your serverless.yml to the plugins section:
plugins:
- serverless-migrate-plugin
  1. Add a custom.migrate section to your serverless.yml with the parameters you want to override:
custom:
migrate:
stateFile: .migrate2
store: ./sample-store
lastRunIndicator: <
noDescriptionText: '?'
ignoreMissing: true
dateFormat: "yyyy-MM-dd hh:mm:ssZ"
templateFile: "my-project-template.js"
environment:
ANOTHER_ENV: overrriden value

You can learn more about these variables in the example.

  1. Create your first migration:
sls migrate create -n <your-migration-name>

Now you are ready to implement your migrations. Once you have finished, you can run them using sls migrate upand sls migrate down. If you want to know more about any commands just run:

sls migrate <command> --help

It is also recommended that you understand how the migrate library works, like how to create migrations.

Built With

  • Serverless framework: A powerful, unified experience to develop, deploy, test, secure, and monitor your Serverless applications.
  • Migrate: Abstract migration framework for node.
  • NodeJS: As runtime for Javascript 8+.

Author

License

This project is licensed under the MIT License - see the LICENSE.md file for details.