Rails Safe Tasks
This gem provides an extra layer of safety between you and deleting all your production data by accident.
It restricts the use of various rake tasks (including db:drop, db:reset etc...) when you are running your application in a production environment.
Installation
To install, just add to your Gemfile and run bundle
.
gem 'rails_safe_tasks', '~> 1.0'
Usage
You don't need to do anything to get started but you can add some extra configuration if you wish.
# Add another task to the list of dangerous tasks
RailsSafeTasks.dangerous_tasks << 'another:task'
# Also can add your own custom environment to the list of restricted
# environments.
RailsSafeTasks.restricted_environments << 'SOME_ENV'
# Specify a custom rule for checking whether or not the current environment
# should be protected or not. Return true if the current environment should
# be protected. In this example, the presence of the 'VDT_APP' environment
# variable means we should be in a cautious state.
RailsSafeTasks.custom_check do
!!ENV['VDT_APP']
end
# Protect a task which is not already initialized when the Gem is included.
namespace :my_app do
task :wipe_everything do
# Here be dragons...
end
end
Rake::Task['my_app:wipe_everything'].enhance ['rails_safe_tasks:disable']