如何使用开发数据填充生产数据库(heroku)? (导轨)

heroku run rake db:migrate可以正常工作来改变生产数据库的结构:

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

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

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

提前致谢。

迁移可以处理结构(模式)和数据,但是一旦滚动,假设在大多数情况下,您的生产数据是规范的信息源。 如果需要设置数据库的数据,例如列表(“万事达卡”,“维萨卡”,“美国运通卡”)或自举数据(例如设置管理员用户),可以使用“种子.rb”文件。内置任何内容它创建了一个数据库(模式和内容)的副本并自动应用它 – 这通常是一次性的事情。

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

简而言之,Rails通过迁移做了正确的事情:假设结构更新正常,但需要您填充数据。 希望这可以帮助!

这是正常行为。 rake db:migrate只会创建数据库结构。 如果要复制Heroku上已有的数据,请使用heroku db:push命令,或者如果要使用某些固定记录初始化数据库,只需使用seeds.rb。