Automatically disable dangerous Rake tasks in production
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

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.



To install, just add to your Gemfile and run bundle.

gem 'rails_safe_tasks', '~> 1.0'


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

# Protect a task which is not already initialized when the Gem is included.
namespace :my_app do
  task :wipe_everything do
    # Here be dragons...

Rake::Task['my_app:wipe_everything'].enhance ['rails_safe_tasks:disable']