【问题标题】:How to populate production database (heroku) with development data? (Rails)如何用开发数据填充生产数据库(heroku)? (导轨)
【发布时间】:2012-04-08 12:41:52
【问题描述】:

heroku run rake db:migrate 可以很好地改变生产数据库的结构:

Migrating to CreateUsers (20120318090252)
Migrating to AddIndexToUsersEmail (20120319191315)
Migrating to AddPasswordDigestToUsers (20120319194632)
Migrating to AddRememberTokenToUsers (20120323142854)

但是条目,我添加到本地开发数据库的数据还没有上传到heroku生产数据库。

这是正常的,还是有办法让两个数据库匹配?

提前致谢。

【问题讨论】:

  • 你的意思是你的本地机器上有你想要在生产中使用的数据吗?它有多少数据?填写查找表?

标签: ruby-on-rails database heroku migration


【解决方案1】:

这是正常行为。 rake db:migrate 只会创建您的数据库结构。如果你想在 Heroku 上复制你已经在开发中的数据,使用heroku db:push 命令,或者如果你想用一些固定的记录初始化数据库,只使用seeds.rb。

【讨论】:

    【解决方案2】:

    迁移可以同时处理结构(架构)和数据,但是一旦开始迁移,就会假设在大多数情况下,您的生产数据是规范的信息来源。如果有设置数据库所需的数据,例如列表(“万事达卡、维萨卡、美国运通卡”)或引导数据(例如设置管理员用户),这可以放在“种子 .rb”文件中。没有内置任何内容复制数据库(模式和内容)并自动应用它——这通常是一次性的。

    (往 other 方向前进——将生产数据库复制到 QA 或开发实例是一个常见的用例。起初,您可能会认为:Rails 应该能够做到这一点。但是复制一个典型的生产数据库可能充满问题。最重要的是:复制具有用户信息的生产数据库是一个重大的安全风险;任何复制操作至少应该使用户匿名。第二个问题只是数据库大小:生产数据库对于重现现实生活中的性能问题或其他边缘情况通常有用甚至是必要的,但是任何大型数据库最终都会花费很长时间来复制,并且高度依赖于您正在使用的特定数据库以及权限)

    简而言之,Rails 在迁移方面做了正确的事情:假设结构更新是可以的,但需要您填充数据。希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2012-02-25
      • 2017-01-13
      • 1970-01-01
      • 2013-07-11
      • 1970-01-01
      • 2014-05-30
      • 2013-02-28
      • 1970-01-01
      • 2012-04-15
      相关资源
      最近更新 更多