EnvironmentMismatchError-Rails.env设置为“生产”

时间:2019-07-08 03:59:22

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

检查本地主机时,我收到Missing secret_key_base for '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设置为生产环境以匹配它,但是我想要的是将这个谜团更改为开发阶段。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

好了。我在其中的一个初始化器中有一个错字,并且正在像这样检查我的Rails env:

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

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

从那里,快速搜索发现了问题。感谢所有花时间研究此问题的人。我将标题更新为更能说明问题的地方。