Capistrano部署Wipes数据库?

我已经设法使用Capistrano将我的应用程序部署到生产中,但我不明白如何处理我的数据库。 我正在使用颠覆和乘客。

当我运行cap deploy时,新部署会重新启动所有内容。 它清除了添加到数据库的数据。 显然,必须有一个解决方案,但我很惊讶没有在网上找到关于如何处理这个问题的任何事情。 我已经阅读了Capistrano文档和许多教程。

我能找到的最好的是Advanced Rails食谱书,它讨论了如何将用户生成的内容放入共享目录中,但这并不完全正确。

在使用Capistrano进行部署时,如何处理数据库?

您可能正在使用SQLite,并且您将数据库保留在默认位置。 您的数据库没有被删除,更多的是被遗忘。

您需要编辑您的database.yml并告诉它将您的生产数据库保存在共享位置“../../shared/database.yml”或类似位置(您可能最好使用绝对路径或奖励积分MySQL的)。

通过capistrano进行部署时,它会在时间戳目录中创建应用程序的新副本。 您的数据库被遗留在旧的带时间戳的目录中。