在rails中开发模式和生产模式有什么区别?

时间:2010-06-07 04:27:46

标签: ruby-on-rails migration mode

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

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

3 个答案:

答案 0 :(得分:6)

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

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

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

但是如果你想要,你可以创建像生产这样的开发或开发环境的生产环境。

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

答案 1 :(得分:4)

摘自Agile Development using Rails本书

  

让发展变得更容易

     

你可能已经注意到了一些事情   我们一直在做的发展   远。因为我们一直在为我们添加代码   应用程序,我们没有必要重新启动   运行的应用程序。它一直   快乐地在...中快乐地走开   背景。然而,每一次改变都是我们的   每当我们访问时都可以使用   通过浏览器申请。什么   给出?

     

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

     

然而,这种灵活性来自于   成本 - 它导致你后短暂停顿   在应用程序之前输入URL   响应。那是由于   调度员重装东西。对于   开发这是一个值得付出的代价,   但在生产中它会是   不能接受的。因此,这个   功能已禁用生产   部署。

答案 2 :(得分:1)

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

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

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

  • 发展
  • 测试
  • 生产

默认Rails环境之间的某些配置选项有所不同,但如果相应 config / environments /#{environment} 文件中的配置选项相同,则环境将完全相同。事实证明,可以通过将连接配置添加到 config / database.yml 并将新环境文件添加到 config / environments

来创建其他环境。