Skip to content

Latest commit

 

History

History
61 lines (40 loc) · 1.9 KB

README.md

File metadata and controls

61 lines (40 loc) · 1.9 KB

Stub Protected Environments

This gem stubs the db:check_protected_environments rake task that was introduced in Rails 5 to protect users from performing database actions on production databases.

While that endeavor may be founded on good intentions, we feel that the protected environment feature is a bike shed on core rails and is extremely obtrusive and negatively impacts the productivity of a Rails application development.

Using this gem, you will no longer experience

rake db:migrate
rake aborted!
ActiveRecord::NoEnvironmentInSchemaError:

Environment data not found in the schema. To resolve this issue, run:

        bin/rails db:environment:set RAILS_ENV=development

Philosophy

Should Rails protect you from dropping a database? or migrating a change? We think not. If you are attempting to upgrade your Rails 4 application to Rails 5, you might experience this miserable scenario:

rake db:migrate
ActiveRecord::NoEnvironmentInSchemaError  <-- rails stops you
rails db:environment:set RAILS_ENV=development  <-- makes you type more stuff
rake db:migrate  <-- yes, that is what we are trying to do in the first place

Directly inheriting from ActiveRecord::Migration is not supported. Please specify the Rails release the migration was written for:
  class DeviseCreateUsers < ActiveRecord::Migration[4.2]
  Migration error -

OK, let's fix the migration and run again...
rake db:migrate
ActiveRecord::NoEnvironmentInSchemaError  <-- !#$%^  I ALREADY DID THAT!

Installation

Include this gem in your Gemfile:

gem 'stub_protected_environments'

TIP: include the gem in the development and test sections of your Gemfile to retain the Rails protection in production

Usage

Run your database rake tasks without obstruction:

rake db:drop db:create db:schema_load

And have a great day!

Contributing

Submit pull requests, propose features and discuss issues. We are in this together.