根据他们的文档,我已经将我的应用程序设置为在Heroku上运行,并具有暂存和生产环境。 http://devcenter.heroku.com/articles/multiple-environments
使用暂存应用程序进行管理,推送整个部署或新分支以进行暂存测试似乎非常简单。我想知道如何管理生产版本。
在部署新代码时,如何保持生产和运行?我是否从暂存中提取更改,还是重新部署整个应用并将更改合并到一起?
其次,在所有这些过程中,如何管理和保持数据库的完整性?我习惯在本地运行,如果你进行新的部署和新的rake:db:migrate,你将丢失所有的数据库数据。如何在生产中完成不丢失记录?
非常感谢您和任何有关heroku管理的其他提示。
答案 0 :(得分:0)
通常,您在本地进行更改,包括迁移或其他任何操作。在将更改推送到生产应用程序之前,将更改推送到您的暂存应用程序以仔细检查一切正常。
如果您在更改中添加了迁移,请务必运行heroku run rake db:migrate
以迁移登台数据库。运行rake db:migrate应该不销毁任何数据,只要你的迁移是正确的 - 即没有奇怪的数据篡改,只是标准的添加/重命名/等。列或引入新表。 (显然,如果你在迁移中丢弃一个表,它就会消失。)
然后,如果您的暂存应用程序一切正常,请将更改推送到您的作品,如果您有任何新的迁移,请再次运行heroku run rake db:migrate
。如果事情不顺利,请运行heroku help
以获取可以使用的命令列表 - 特别是有关版本的命令,以便您可以恢复到以前的版本。另外heroku logs
非常有用,heroku console
(实际命令可能略有不同),但是当你启动一个控制台时,要特别注意不要过多地篡改数据。
使用Heroku,不需要部署命令 - 就在你推送时,你的更新代码就在那里。如果您之前使用过capitanrano,则不要“限制部署”。
希望这有帮助。