2012-03-24 43 views
6

heroku run rake db:migrate正常工作,以改变生产数据库的结构:如何用开发数据填充生产数据库(heroku)? (Rails)的

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

,我已经加入到我的地方发展数据库中的数据没有被上传到Heroku的生产数据库。

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

在此先感谢。

+0

你的意思是说你在本地盒子上有你想要的数据吗?它有多少数据?填写查找表? – natedavisolds 2012-03-24 00:21:21

回答

6

迁移可以同时处理结构(模式)和数据,但一旦滚动,假设是在大多数情况下,您的生产数据是规范的信息来源。如果需要设置数据库的数据,例如列表(“Mastercard,Visa,Amex)”或引导数据(例如设置管理员用户)等,则可以在“种子.rb”文件中找到。它会复制数据库(模式和内容)并自动应用它 - 这通常是一次性的事情。

(进入其他方向 - 将生产数据库复制到QA或开发实例首先,你可能会认为:Rails应该可以做到这一点,但是复制一个典型的生产数据库可能会带来很多问题,最重要的是:复制包含用户信息的生产数据库是一个重大的安全风险;任何复制操作至少应使用户匿名;第二个问题是数据库大小:生产数据库对于复制实际性能问题或其他边缘情况通常很有用,甚至是必要的,但是任何大型数据库最终都需要很长时间进行复制,并且高度依赖于所使用的特定数据库以及权限)

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

8

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

相关问题