aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/migration.rb
diff options
context:
space:
mode:
authorschneems <richard.schneeman@gmail.com>2016-01-11 10:22:26 -0600
committerschneems <richard.schneeman@gmail.com>2016-01-11 11:00:34 -0600
commiteafa43e870cb595b8efd95323082c9fd3e50caab (patch)
tree82324ac01ad68ac2891e6e56a9783db37a3a36d4 /activerecord/lib/active_record/migration.rb
parent179df9df68396a6916f62192971838b7e73d5f76 (diff)
downloadrails-eafa43e870cb595b8efd95323082c9fd3e50caab.tar.gz
rails-eafa43e870cb595b8efd95323082c9fd3e50caab.tar.bz2
rails-eafa43e870cb595b8efd95323082c9fd3e50caab.zip
Allow manually setting environment value
If for some reason some one is not able to set the environment from a migration this gives us an escape valve to manually set the environment for the database see https://github.com/rails/rails/pull/22967#issuecomment-170251635. We will also fix the migration case, but this will ensure there is always a way to set the environment. cc/ @sgrif
Diffstat (limited to 'activerecord/lib/active_record/migration.rb')
-rw-r--r--activerecord/lib/active_record/migration.rb17
1 files changed, 11 insertions, 6 deletions
diff --git a/activerecord/lib/active_record/migration.rb b/activerecord/lib/active_record/migration.rb
index f699e83ab3..4a6e9c12fe 100644
--- a/activerecord/lib/active_record/migration.rb
+++ b/activerecord/lib/active_record/migration.rb
@@ -145,7 +145,7 @@ module ActiveRecord
class NoEnvironmentInSchemaError < MigrationError #:nodoc:
def initialize
- msg = "Environment data not found in the schema. To resolve this issue, run: \n\n\tbin/rake db:migrate"
+ msg = "Environment data not found in the schema. To resolve this issue, run: \n\n\tbin/rake db:environment:set"
if defined?(Rails.env)
super("#{msg} RAILS_ENV=#{::Rails.env}")
else
@@ -157,7 +157,7 @@ module ActiveRecord
class ProtectedEnvironmentError < ActiveRecordError #:nodoc:
def initialize(env = "production")
msg = "You are attempting to run a destructive action against your '#{env}' database\n"
- msg << "if you are sure you want to continue, run the same command with the environment variable\n"
+ msg << "If you are sure you want to continue, run the same command with the environment variable\n"
msg << "DISABLE_DATABASE_ENVIRONMENT_CHECK=1"
super(msg)
end
@@ -165,10 +165,15 @@ module ActiveRecord
class EnvironmentMismatchError < ActiveRecordError
def initialize(current: nil, stored: nil)
- msg = "You are attempting to modify a database that was last run in #{ stored } environment.\n"
- msg << "You are running in #{ current } environment."
- msg << "if you are sure you want to continue, run the same command with the environment variable\n"
- msg << "DISABLE_DATABASE_ENVIRONMENT_CHECK=1"
+ msg = "You are attempting to modify a database that was last run in `#{ stored }` environment.\n"
+ msg << "You are running in `#{ current }` environment."
+ msg << "If you are sure you want to continue, first set the environment using:\n\n"
+ msg << "\tbin/rake db:environment:set"
+ if defined?(Rails.env)
+ super("#{msg} RAILS_ENV=#{::Rails.env}")
+ else
+ super(msg)
+ end
end
end