This gem makes it possible to deploy multiple instances with data migration simultaneously. It uses Redis to ensure that there will be only one migration running.
bundle exec synchronised-migration migrate --config=migration.yml --version=1.2.3
bundle exec synchronised-migration status --config=migration.yml --version=1.2.3
If a previous migration has failed a new one will not be allowed to start unless it is first cleared.
bundle exec synchronised-migration clear --config=migration.yml
If you wish to clear all locks, *including the running lock then you must also provide version
bundle exec synchronised-migration clear --config=migration.yml --version=1.2.3 --all
Key | Description |
---|---|
redis_uri | Redis server to use for locking |
application | Application being migrated |
version | Version being migrated too |
debug | Enable additional debug information |
command | Command to execute for the migration |
timeout_milliseconds | Timeout to wait for the lock |
retry_delay_milliseconds | Retry for the lock every x milliseconds |
You may override certain config options such as the redis-uri
and the debug
flag
by providing them via cli options.
bundle exec synchronised-migration migrate --config=migration.yml --version=1.2.3 --redis_uri=redis://127.0.0.1:6379/0
To publish a new version of this gem the following steps must be taken.
- Update the version in the following files
CHANGELOG.md lib/synchronised_migration/version.rb
- Create a tag using the format v0.1.0
- Follow build progress in GitHub actions