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.
With this plugin you can
- Make the commands of
migrate
available via theserverless
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.
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:
- Install
serverless-migrate-plugin
in your project:
npm i serverless-migrate-plugin
- Add it to your serverless.yml to the
plugins
section:
plugins:
- serverless-migrate-plugin
- 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.
- 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 up
and
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.
- 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+.
- Eliecer Hernandez - eliecerhdz@gmail.com. For more information, please visit my website.
This project is licensed under the MIT License - see the LICENSE.md file for details.