Skip to content

maedadev/ready-for-migration

Repository files navigation

Ready::For::Migration

This is an Rails Engine that provides an endpoint that responds whether the application migration has done or not.

Usage

Add this line to your Rails application's config/routes.rb:

mount Ready::For::Migration::Engine, at: '/healthz'

This makes the path "/healthz" available. If your application migration has be done, it returns 200 OK, otherwise it returns 503 Service Unavailable.

Installation

Add this line to your application's Gemfile:

gem 'ready-for-migration'

Or install it yourself as:

$ gem install ready-for-migration

Simulate Health Check Response

You can simulate health check response by adding specific query parameters to your health check requests.

Here's the pattern we're providing. (values are just an example)

pattern behavior
No query parameters health check as usual.
?status=503 respond with specified status code.
?status=503&after=60 respond with specified status code once specified seconds have passed since the first access with after.
?status=503&sleep=60 respond with specified status code after sleeping specified seconds.
?status=503&random=10 randomly respond with specified status code, once in a specified number as random.
?sleep=60 health check after sleeping specified seconds.

NOTE: Other patterns than listed in the above example will be ignored.
NOTE: "sleep" parameter is disabled in default for avoiding DoS attack. To enabling this, you set environment variables "RFM_ENABLE_SLEEP" as "1".

License

The gem is available as open source under the terms of the MIT License.