我目前正在做Michael Hartl的Ruby on Rails教程。在某个地方,我搞砸了我的数据库。在我的数据库文件中,只有一个用户,名为Bob。
本地在cloud9 IDE中,当我执行“rails console'然后做Users.first,我得到一个名为" Bob"的用户。
然而,当我这样做时,heroku rails会运行console'并且当User.first,我得到一个具有不同名称的用户。 (我可能在路上某处更改了名称)
如何让Heroku再次查看正确的本地数据库文件?我应该清除heroku数据库,然后使用pg:pull将本地sql数据库拉到heroku吗?
答案 0 :(得分:0)
您可以使用yaml_db gem将本地数据转储到文件中,然后将其上传到heroku。
在您的开发机器上:
rake db:data:dump
然后提交更改,推送到heroku并运行:
heroku run rake db:data:load
答案 1 :(得分:0)
不确定您是否已进入第9章,但本书的section 9.3.2涉及创建示例用户。这是通过db/seeds.rb
文件完成的。
运行$ bundle exec rake db:reset
然后重置您的数据库,然后重置$ bundle exec rake db:seed
以填充新数据。
您可以使用以下命令在生产应用程序上运行相同的过程:
heroku pg:reset DATABASE
heroku run rake db:migrate
heroku run rake db:seed
当然,也可以使用heroku-pg-transfer之类的工具在本地数据库和生产数据库之间传输数据,但如果您只是刚刚开始,它会稍微提高一些,我想如果您只有一个用户可以转移,则不必要。
希望这有帮助。