8

目前,我正在为我的应用程序使用开发模式,但我不知道是否应该使用生产模式。如果是这种情况,我如何将我的所有数据转移到生产模式?

在此过程中是否存在引入错误的风险?

4

3 回答 3

7

区别在于 2 个环境。在 Rails 中,有几种环境。每个人都有自己的数据库配置和 Rails 选项。

您可以使用该Rails.env变量对特定环境进行一些不同的更改。

默认情况下,开发环境没有所有缓存并激活自动重新加载。生产环境带有所有缓存。

但是,如果您愿意,您可以制作类似开发的生产环境或类似生产的开发环境。

您也可以添加一些新的特定环境。

于 2010-06-07T04:44:28.730 回答
4

摘自《使用 Rails 进行敏捷开发》一书

让开发更容易

您可能已经注意到我们迄今为止所做的一些开发工作。由于我们一直在向应用程序添加代码,因此我们不必重新启动正在运行的应用程序。它一直在背景中愉快地嬉戏。然而,每当我们通过浏览器访问应用程序时,我们所做的每一项更改都是可用的。是什么赋予了?

事实证明,Rails 调度程序非常聪明。在开发模式下(相对于测试或生产),它会在新请求出现时自动重新加载应用程序源文件。这样,当我们编辑我们的应用程序时,调度程序会确保它正在运行最新的更改。这对发展很有好处。

然而,这种灵活性是有代价的——它会在您输入 URL 之后在应用程序响应之前导致短暂的暂停。这是由调度程序重新加载内容引起的。对于开发来说,这是一个值得付出的代价,但在生产中这是不可接受的。因此,此功能在生产部署中被禁用。

于 2010-06-07T05:19:57.430 回答
3

从根本上说,Rails 环境之间没有区别。环境只是一个常量,它在 Rails 应用程序启动时设置,并且在整个引导过程中经常被引用,并且可供应用程序代码使用。

例如,常量定义了用于连接的数据库配置以及在启动时执行的环境初始化程序(例如config/environments/development.rb)。

rails 应用程序中存在的默认环境是:

  • 发展
  • 测试
  • 生产

默认 Rails 环境之间的一些配置选项不同,但如果相应的config/environments/#{environment}文件中的配置选项相同,则环境将相同。可以通过将连接配置添加到config/database.yml并将新的环境文件添加到config/environments来创建其他环境的事实证明了这一点

于 2010-06-07T05:12:32.053 回答