【问题标题】:How do I tell Sinatra what environment (development, test, production) it is?我如何告诉 Sinatra 它是什么环境(开发、测试、生产)?
【发布时间】:2013-10-25 13:34:05
【问题描述】:

(免责声明:在 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

【问题讨论】:

  • "在 Heroku 中,将环境设置为生产环境,否则留在测试/开发中。" It does this automatically anyway,不需要自己指定环境。只需删除该声明。我建议你在本地安装 postgres,在本地使用 SQLite 并没有任何收获。

标签: ruby heroku rubygems sinatra


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    Sinatra 使用APP_ENV 环境变量。正如您所提到的,您也可以通过设置显式设置它。

    指定部署环境的符号;通常设置为 :development、:test 或 :production 之一。 :environment 默认为 APP_ENV 环境变量 (ENV['APP_ENV']) 的值,如果没有设置 APP_ENV 环境变量,则为 :development。

    这就是你告诉 Sinatra 环境的方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      • 1970-01-01
      • 2019-04-10
      • 2018-11-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多