heroku运行rake db:migrate可以正常工作来改变生产数据库的结构:
Migrating to CreateUsers (20120318090252) Migrating to AddIndexToUsersEmail (20120319191315) Migrating to AddPasswordDigestToUsers (20120319194632) Migrating to AddRememberTokenToUsers (20120323142854)
但是条目,我添加到本地开发数据库的数据还没有上传到heroku生产数据库.
这是正常的,还是有办法使两个数据库匹配?
提前致谢.
解决方法
迁移可以处理结构(模式)和数据,但是一旦滚动,假设在大多数情况下,您的生产数据是规范的信息源.如果需要设置数据库的数据,例如列表(“万事达卡”,“维萨卡”,“美国运通卡”)或自举数据(例如设置管理员用户)等内容,可以使用“种子.rb”文件.内置任何内容它创建了一个数据库(模式和内容)的副本并自动应用它 – 这通常是一次性的事情.
(转向另一个方向 – 将生产数据库复制到QA或开发实例是一个常见的用例.首先,您可能会认为:Rails应该能够做到这一点.但复制典型的生产数据库可能会遇到问题.最重要的是:复制具有用户信息的生产数据库是一个重大的安全风险;任何复制操作至少应该使用户匿名.第二个问题只是数据库大小:生产数据库通常是有用的,甚至是必要的,以重现真实的生活性能问题或其他边缘情况,但任何大型数据库最终都需要很长时间才能复制,并且高度依赖于您正在使用的特定数据库以及权限)
简而言之,Rails在迁移时做了正确的事情:假设结构更新正常,但需要您填充数据.希望这可以帮助!