Rails 3:HEROKU分期和生产回购管理

时间:2011-06-25 00:58:07

标签: ruby-on-rails ruby-on-rails-3 heroku

根据他们的文档,我已经将我的应用程序设置为在Heroku上运行,并具有暂存和生产环境。 http://devcenter.heroku.com/articles/multiple-environments

使用暂存应用程序进行管理,推送整个部署或新分支以进行暂存测试似乎非常简单。我想知道如何管理生产版本。

在部署新代码时,如何保持生产和运行?我是否从暂存中提取更改,还是重新部署整个应用并将更改合并到一起?

其次,在所有这些过程中,如何管理和保持数据库的完整性?我习惯在本地运行,如果你进行新的部署和新的rake:db:migrate,你将丢失所有的数据库数据。如何在生产中完成不丢失记录?

非常感谢您和任何有关heroku管理的其他提示。

1 个答案:

答案 0 :(得分:0)

通常,您在本地进行更改,包括迁移或其他任何操作。在将更改推送到生产应用程序之前,将更改推送到您的暂存应用程序以仔细检查一切正常。

如果您在更改中添加了迁移,请务必运行heroku run rake db:migrate以迁移登台数据库。运行rake db:migrate应该销毁任何数据,只要你的迁移是正确的 - 即没有奇怪的数据篡改,只是标准的添加/重命名/等。列或引入新表。 (显然,如果你在迁移中丢弃一个表,它就会消失。)

然后,如果您的暂存应用程序一切正常,请将更改推送到您的作品,如果您有任何新的迁移,请再次运行heroku run rake db:migrate。如果事情不顺利,请运行heroku help以获取可以使用的命令列表 - 特别是有关版本的命令,以便您可以恢复到以前的版本。另外heroku logs非常有用,heroku console(实际命令可能略有不同),但是当你启动一个控制台时,要特别注意不要过多地篡改数据。

使用Heroku,不需要部署命令 - 就在你推送时,你的更新代码就在那里。如果您之前使用过capitanrano,则不要“限制部署”。

希望这有帮助。