EnvironmentMismatchError - Rails.env устанавливается в «производство» - PullRequest
1 голос
/ 08 июля 2019

Я получаю ошибку Missing secret_key_base for 'production' environment, set this value in config/secrets.yml при проверке localhost.Это не имеет смысла, так как я должен быть в разработке.

Я вошел в систему Rails.env во время запуска сервера, и он показывает development.

Оттуда я попробовал кое-что из базы данных:

  • rails dbconsole выдает мне эту ошибку: psql: FATAL: role "my-server" does not exist

  • rails db:create достает мне это:

Database 'my-server_development' already exists

Database 'my-server_test' already exists

  • Далее я решил попробоватьrails db:create, что дало мне наиболее показательную ошибку:

ActiveRecord :: EnvironmentMismatchError: Вы пытаетесь изменить базу данных, которая последний раз запускалась в среде development.Вы работаете в production среде.Если вы уверены, что хотите продолжить, сначала установите среду, используя:

bin / rails db: environment: set RAILS_ENV = production

В заключение,некоторые тайные настройки в моей среде, похоже, настроены на работу.Эта ошибка говорит о том, что я пытаюсь настроить env для rails на производство, чтобы соответствовать ему, но я хочу изменить эту загадку на разработку.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 08 июля 2019

Хорошо, разобрался.У меня была опечатка в одном из моих инициализаторов, и я проверял свою среду Rails следующим образом:

if Rails.env = "production"
  # blahblah do something

Это, конечно, устанавливало Rails.env в "production".Я возился с Pry в процессе запуска Rails и обнаружил, что Rails.env возвращал "development" в один момент, а "production" позже.

Оттуда быстрый поиск обнаружил проблему.Спасибо всем, кто нашел время, чтобы посмотреть на это.Я обновлю название на что-то более показательное из проблемы.

...