0

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

  • 同一个 Rails 应用程序中的不同版本的代码。
  • 在向用户推出期间不同版本的 Rails 应用程序。
  • 版本之间不同的数据库结构
  • 在新的数据库和服务器之间移动数据。

这里有一些想法供讨论

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

1 回答 1

0

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

rails 中的迁移也遵循此策略,这会导致您的数据结构。如果您认为您已准备好投入生产,那么您的数据库不应有重大更改。也许您需要添加一个列或功能,但您应该已经完成​​了批发数据库重构。

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

于 2011-05-19T10:10:51.957 回答