2011-06-25 41 views
0

我已经安装了我的应用程序,以根据他们的文档在分阶段和生产环境下在Heroku上运行。 http://devcenter.heroku.com/articles/multiple-environmentsRails 3:HEROKU分期和生产回购管理

使用staging应用程序进行管理似乎非常简单,可以将整个部署或新分支上移到staging中进行测试。我想知道的是如何管理生产版本。

部署新代码时如何保持我的产品正常运行?我是否会从分段中引入更改,或者是否重新部署整个应用程序,并将合并的更改合并到一起?

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

谢谢你和任何有关heroku管理的其他提示,欢迎参加。

回答

0

通常,您在本地进行更改,包括迁移或其他。在将更改推送到生产应用程序之前,请将更改推送到您的临时应用程序,以检查事情是否正常。

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

然后,如果您的演示应用程序一切正常,请将更改推送到您的作品,如果您有任何新的迁移,请再次运行heroku run rake db:migrate。如果情况不好,运行heroku help以获取您可以使用的命令列表 - 特别是关于发行版的命令列表,以便您可以恢复到以前的版本。另外heroku logs真的很有用,而heroku console(实际的命令可能会略有不同),但是当你启动一个控制台时,千万小心不要篡改数据太多。

使用Heroku,不需要部署命令 - 正确的时候你推动,你的更新代码就在那里。如果您之前使用过Capistrano,请不要使用“帽子部署”。

希望这会有所帮助。