【问题标题】:Will Rails db Data be Lost on Redeploy to Heroku?Rails db 数据在重新部署到 Heroku 时会丢失吗?
【发布时间】:2015-10-12 10:01:58
【问题描述】:

我一直在搜索和研究,但似乎找不到任何直接谈论这个的文章。我有一个艺术画廊 Rails 应用程序,其中包含大约 6 个不同属性的模型、艺术品等。当我对其站点进行更改并重新部署时,数据库是否也会被重置?或者 Postgres 和 Rails 应用在 Heroku 上是分开的?

我还读到有人将他们所有的数据放入seed.rb,然后在重新部署后用种子数据重新填充数据库?听起来对吗?任何见解都会非常有帮助。谢谢

【问题讨论】:

  • 使用seed.rb 适用于少量默认数据(我使用它来加载 ISO 3166 列表中的国家/地区)。我会注意您在播种时执行相当于UPSERT 的操作,您希望能够多次运行种子文件而不会创建重复项。您可以在 Rails 3.2.1+ 中使用 first_or_create

标签: ruby-on-rails ruby postgresql heroku deployment


【解决方案1】:

如果您使用的是数据库,您的数据不会在重新部署时丢失。只有存储在/tmp 中的数据在执行部署后会丢失。

我假设您使用的是 heroku postgres。在这种情况下,看看这个,最好定期创建备份:https://devcenter.heroku.com/articles/heroku-postgres-backups

seed.rb 中,您应该只添加设置项目所需的数据,仅此而已。例如创建一个管理员。

【讨论】:

    【解决方案2】:

    除非您有意这样做,否则在重新部署到 heroku 时不会丢失任何数据。 种子数据仅用于填充 rails 应用程序中的一些默认数据库值。

    我假设您在应用程序中上传图片,并且它们在部署后不会持续存在。所以这是真的。 Heroku 确实允许您将图像上传到 heroku。但它们在部署后不会持续存在。

    上传的图像会在特定的时间间隔内保留。

    如果是这种情况,您尝试将图像上传到 amazon s3 存储桶,所有上传 gem 都支持。

    【讨论】:

      猜你喜欢
      • 2014-06-15
      • 2016-06-03
      • 2011-12-22
      • 1970-01-01
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-10
      相关资源
      最近更新 更多