Дисклеймер

Інформація на сайті tseivo.com є суб'єктивною та відображає особисті погляди та досвід авторів та авторок блогів.

Використовуйте цей ресурс як одне з декількох джерел інформації під час своїх досліджень та прийняття рішень. Завжди застосовуйте критичне мислення. Людина сама несе відповідальність за свої рішення та дії.

Фіксимо ActiveRecord::ProtectedEnvironmentError у локальному середовищі

Локально можна побачити помилку ActiveRecord::ProtectedEnvironmentError у випадку, якщо ви намагаєтесь звернутися до середовища, яке є захищеним (protected), наприклад, production або staging, з контексту, де це заборонено.
Простий приклад - я зробив backup бази postgresql на Heroku. Імпортував її локально. А коли я хотів видалити базу - отримав помилку про спробу видалення захищенної бази даних (production).
rake db:drop;
rake aborted! 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
Повідомлення про помилку вже каже як саме можна її вирішити, а саме - використати environment variable:
DISABLE_DATABASE_ENVIRONMENT_CHECK=1
Тобто команда для видалення захищеної бази буде виглядати так:
DISABLE_DATABASE_ENVIRONMENT_CHECK=1 rake db:drop;
Будьте уважні. Ви маєте розуміти що саме робите та для чого. Не дропніть випадково продакшн базу свого проєкту. Помилка ActiveRecord::ProtectedEnvironmentError це захист від помилкового видалення важливої бази даних.

🙌 Підтримати блог @memecode

Ви можете поширити цей допис у соцмережах, чим допоможете платформі цейво розвиватись (* ^ ω ^)

📝 Більше публікацій: