Как избавиться от ошибки ActiveRecord::ProtectedEnvironmentError?
При попытке сбросить базу данных на локальной машине при помощи rake db:drop появляется следующая ошибка:
ActiveRecord::ProtectedEnvironmentError: You are attempting to run a destructive action against your 'production' database. If you are sure you want to continue, run the same command with the environment variable: DISABLE_DATABASE_ENVIRONMENT_CHECK=1
Это связано с тем, что текущее рабочее окружение в режиме production. Пытаясь нас уберечь от деструктивного действия (сноса production БД) ActiveRecord останавливает процесс и показывает данную ошибку.
Такое может случиться, когда локально тестировался production-mode приложения и ENV не был переключен обратно в development режим.
Вернуться обратно на development окружение можно при помощи этой команды:
bin/rails db:environment:set RAILS_ENV=development
Соответственно для переключения на staging и production:
bin/rails db:environment:set RAILS_ENV=staging bin/rails db:environment:set RAILS_ENV=production
Будьте внимательны, работая с отличными от development окружениями. Убедитесь, что локально не используются API-ключи, email-адреса и прочие чувствительные штуки, которые могут вызвать нежелательные действия с production (реальными данными, связями и тд.).