本地 sql 数据库和 heroku postgres 数据库文件不同,如何再次同步? Ruby 在 Rails

Local sql database and heroku postgres database files differ, how to sync again? Ruby on Rails

我目前正在学习 Michael Hartl 的 Rails 教程 Ruby。一路上的某个地方我搞砸了我的数据库。在我的数据库文件中只有 1 个用户,名字叫 Bob。

在 cloud9 本地 IDE,当我执行 'rails console' 然后执行 Users.first 时,我得到一个名为 "Bob".

的用户

但是,当我执行 'heroku rails run console' 和 Users.first 时,我得到了一个具有不同名称的用户。 (我可能在途中更改了名称)

如何让 Heroku 再次看到正确的本地数据库文件?我应该清除 heroku 数据库,然后使用 pg:pull 将本地 sql 数据库拉到 heroku 吗?

您可以使用yaml_db gem将本地数据转储到文件,然后将其上传到heroku。

在您的开发机器上:

rake db:data:dump

然后提交更改,推送到 heroku 和 运行:

heroku run rake db:data:load

不确定您是否已经读到第 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 等工具在本地数据库和生产数据库之间传输数据,但如果您只是刚开始,那会有点高级,而且我认为如果您没有必要只有一个用户可以转移。

希望这对您有所帮助。