我可以在不破坏现有数据库的情况下部署到Heroku吗? Ruby on Rails

时间:2015-01-03 18:26:39

标签: ruby-on-rails database heroku deployment migration

我对我的应用进行了相当大的升级。我目前在Heroku上部署了旧版本。问题是我在使应用程序更加模块化的过程中添加/删除了很少的迁移。在部署更新时,我不想丢失已在Heroku上注册的用户表。在升级应用程序时,是否有人可以提供有关如何保留用户表的提示?我确实安装了备份插件,但我不知道如何处理该文件。

2 个答案:

答案 0 :(得分:0)

然后,您应该更加仔细地设置迁移,因为最后一次在heroku服务器上显示。所以,何时:

  1. 您正在添加一个列,只需设置defualt值

  2. 您删除了该列,您将数据导出到(例如)YAML,并将其存储在 tmp / 中。

  3. 您正在通过添加和删除其中的一些来重构部分colunms,在迁移中仔细将所需数据从较旧的列(准备删除)复制到新创建的列。

答案 1 :(得分:0)

如果您担心部署,我认为您可能需要宣布移民破产。

  • 创建一个新的迁移,删除当前架构并将新数据库架构复制到其中
  • 将数据库的内容转储为CSV(https://coderwall.com/p/jwtxjg/simple-export-to-csv-with-postgres)或使用Rails以其他方式转储(YAML等)
  • 编写Rake任务以将数据转储解析为新架构
  • 在Heroku Postgres上设置一个新数据库(这不会删除旧数据)
  • 在当地进行干运行以确保一切正常
  • 将新数据库提升为DATABASE_URL
  • 部署,迁移,运行Rake任务

不是很好,如果出错,你不能轻易回滚。