如何告诉Sinatra是什么环境(开发、测试、生产)?[英] How do I tell Sinatra what environment (development, test, production) it is?

本文是小编为大家收集整理的关于如何告诉Sinatra是什么环境(开发、测试、生产)?的处理方法,想解了如何告诉Sinatra是什么环境(开发、测试、生产)?的问题怎么解决?如何告诉Sinatra是什么环境(开发、测试、生产)?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

(免责声明:在 Heroku 上部署 Sinatra 的新手.)

我见过 http://www.sinatrarb.com/configuration.html 和它告诉我set :environment, :production.我的问题是,我该如何指定它:"在 Heroku 中时,将环境设置为生产环境,否则留在测试/开发中."

此外,即使在放置 set :environment, :production 行之后,我认为它也不起作用,因为当我尝试在本地 rackup 应用程序时,它仍在运行(当我知道(或我认为我知道)它时)不应该是因为我还没有在我的电脑上安装 postgres).

宝石文件

group :production do
  gem 'dm-postgres-adapter'
end

group :development, :test do
  gem 'dm-sqlite-adapter', "~> 1.2.0"
end

推荐答案

Sinatra 环境与正在加载的生产组内的 gem 无关.它们是分开的,不能相互配合.

Sinatra 从 RACK_ENV 环境变量中获取环境,只需使用 RACK_ENV=production rackup

启动它

Bundler 的工作方式有点不同,您可以选择在运行 bundle install 时它应该排除哪些组:bundle install --without production

本文地址:https://www.itbaoku.cn/post/786720.html