2009-10-20 46 views
11

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

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

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

在与Capistrano部署时,您如何处理数据库?

+0

你的数据库如何? SQLite? – 2009-10-20 08:28:16

回答

24

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

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

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

+0

啊!好吧,是的,我正要切换到mysql,但我一直在使用sqlite进行开发,并且第一次使用sqlite进行了部署。看起来该是切换到mysql的时候了。谢谢。 – MikeH 2009-10-20 16:41:52

+0

切换到MySQL,一切都很好。这是问题。 – MikeH 2009-10-21 02:06:46

+0

好东西!感谢你的接纳! – cwninja 2009-10-21 09:51:08