Serverless plugin for migrate
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 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.
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:
- 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.
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
- Eliecer Hernandez - eliecerhdz@gmail.com. For more information, please visit my website.
License
This project is licensed under the MIT License - see the LICENSE.md file for details.