【问题标题】:EnvironmentMismatchError - Rails.env being set to "production"EnvironmentMismatchError - Rails.env 被设置为“生产”
【发布时间】:2019-11-17 13:47:53
【问题描述】:

我在检查 localhost 时收到 Missingsecret_key_basefor 'production' environment, set this value in config/secrets.yml 错误。这没有意义,因为我应该在开发中。

我在服务器启动期间记录了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

总之,我的环境中的一些神秘配置似乎已设置为生产环境。此错误表明我尝试将我的 rails env 设置为生产环境以匹配它,但我想要将这个神秘的东西更改为开发。

任何帮助将不胜感激。

【问题讨论】:

  • 如果RAILS_ENV 设置为env | grep RAILS_ENV,请检查您的终端。如果是,请运行unset RAILS_ENV
  • @DennyMueller 它似乎没有在 ENV 中设置,env | grep RAILS_ENV 什么也不返回。

标签: ruby-on-rails-5 rails-activerecord


【解决方案1】:

好吧,想通了。我的一个初始化程序中有一个错字,并且正在检查我的 Rails 环境,如下所示:

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

这当然是将Rails.env 设置为"production"。我在 Rails 启动过程中搞砸了 Pry,我发现 Rails.env 曾一度返回 "development",后来又返回 "production"

从那里,快速搜索发现了问题。感谢所有花时间看这个的人。我会将标题更新为更能说明问题的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 2023-03-05
    • 2019-01-26
    • 1970-01-01
    相关资源
    最近更新 更多