Ta treść została automatycznie przetłumaczona z ukraińskiego.
Lokálně można zobaczyć błąd ActiveRecord::ProtectedEnvironmentError w przypadku, gdy próbujesz uzyskać dostęp do środowiska, które jest chronione (protected), na przykład production lub staging, z kontekstu, gdzie jest to zabronione.
Prosty przykład - zrobiłem backup bazy postgresql na Heroku. Zaimportowałem ją lokalnie. A kiedy chciałem usunąć bazę - otrzymałem błąd o próbie usunięcia chronionej bazy danych (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
Wiadomość o błędzie już mówi, jak można go rozwiązać, a mianowicie - użyć environment variable:
DISABLE_DATABASE_ENVIRONMENT_CHECK=1
To znaczy, że polecenie do usunięcia chronionej bazy będzie wyglądać tak:
DISABLE_DATABASE_ENVIRONMENT_CHECK=1 rake db:drop;
Uważaj. Musisz rozumieć, co robisz i po co. Nie usuń przypadkowo bazy produkcyjnej swojego projektu. Błąd ActiveRecord::ProtectedEnvironmentError to ochrona przed przypadkowym usunięciem ważnej bazy danych.
Ten post nie ma jeszcze żadnych dodatków od autora.