Heroku db:推送不正确复制数据库

时间:2012-03-31 19:03:40

标签: ruby-on-rails postgresql heroku

我正在尝试使用heroku db:push将我的本地postgresql数据库上传到Heroku提供的5Mb共享数据库。一切正常但数据库不会反映我在本地数据库上的内容。有些记录会重复,而其他记录则会丢失。所以,如果我在本地数据库中有三条记录:

cat, dog, banana

当我使用db:push时我最终得到:

dog, dog, cat

我的数据库大约有100,000个记录,总共3-4 MB。知道如何解决这个问题吗?

我的database.yml:

发展:

adapter: postgresql
encoding: unicode
database: myDB
username: myUname
password: myPw
host: localhost
port: 5432
reconnect: true

生产:

adapter: postgresql
encoding: unicode
database: myDBname
username: myUname
password: myPW
host: ec2-23-21-140-215.compute-1.amazonaws.com

我从

获取的所有这些数据库信息
heroku config

使用主机,用户名等提供数据库URL

2 个答案:

答案 0 :(得分:0)

Push本质上是替换已经存在的表的数据的副本(它不会触及不属于推送的表)。

我不确定你为什么会遇到你遇到的问题,但是你可以重置你的数据库并推动获得你想要的一份干净的副本:

heroku pg:reset
heroku db:push

答案 1 :(得分:0)

虽然方便,但使用tap(db:push使用的)可能无法准确复制数据,并且可能会因较大的传输而遇到错误。要从生产系统导入或导出数据,我们强烈建议您使用pgbackups。

https://devcenter.heroku.com/articles/import-data-heroku-postgres#from_postgres

https://devcenter.heroku.com/articles/pgbackups#importing_from_a_backup