推出新版Rails应用程序

时间:2011-05-19 09:53:49

标签: ruby-on-rails version production rollout

我想知道人们如何处理在生产环境中逐步推出功能和版本。该场景是您有两个已测试代码的版本,一个已经在生产中,另一个将推出,这些是常见问题。

  • 同一个rails app中不同版本的代码。
  • 在向用户推广期间不同版本的rails app。
  • 版本之间的不同数据库结构
  • 跨新数据库和服务器移动数据。

以上是讨论的一些想法

  • if具有常量的语句,M,V,C名称中的版本号
  • 负载均衡到不同的应用服务器(如何粘贴?),RVM
  • 将表中的旧字段和新字段作为临时字段,或将记录迁移到新表或
    数据库。
  • 没有简单的方法来移动数据 服务器。

1 个答案:

答案 0 :(得分:0)

听起来你需要一个良好的分支和合并策略。如果你使用的是Git或SVN之类的东西,那么主机或主干上的任何东西都应该是生产就绪的质量。如果你遇到AbcController好并且准备好去的情况,但是XyzController是不稳定的,那么XyzController可能需要更多的测试而且不应该是主人。

rails中的迁移也遵循此策略,这将导致您的数据结构。如果您认为自己已准备好进行生产,那么您的数据库不应该有重大变化。也许您需要添加一个列或功能,但您应该远远超过批发数据库重构。

最后,上传/更新数据是任何迁移情况的痛苦。根据我的经验,它涉及编写SQL脚本来执行移动,或者更新数据库以获得一些新功能。这些SQL脚本也应该在您的源代码控制之下。通过在迁移文件本身中编写迁移脚本,Rails可以使这更容易。根据您的具体情况,这可以工作。