Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Heroku db:推送未正确复制数据库_Ruby On Rails_Postgresql_Heroku - Fatal编程技术网

Ruby on rails Heroku db:推送未正确复制数据库

Ruby on rails Heroku db:推送未正确复制数据库,ruby-on-rails,postgresql,heroku,Ruby On Rails,Postgresql,Heroku,我正在尝试使用heroku db:push将我的本地postgresql数据库上载到heroku提供的5Mb共享数据库。一切正常,但数据库没有反映我在本地数据库上的内容。一些记录被复制,而另一些则丢失了。因此,如果我在本地数据库中有三条记录: cat, dog, banana 当我使用db:push时,我的结果是: dog, dog, cat 我的数据库有大约100000条记录,总共3-4MB。你知道我该怎么解决这个问题吗 My database.yml: 发展: adapter: post

我正在尝试使用heroku db:push将我的本地postgresql数据库上载到heroku提供的5Mb共享数据库。一切正常,但数据库没有反映我在本地数据库上的内容。一些记录被复制,而另一些则丢失了。因此,如果我在本地数据库中有三条记录:

cat, dog, banana
当我使用db:push时,我的结果是:

dog, dog, cat
我的数据库有大约100000条记录,总共3-4MB。你知道我该怎么解决这个问题吗

My 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。

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

我不知道你为什么会遇到这些问题,但你可以重置数据库,然后按一下以获得你想要的干净副本:

heroku pg:reset
heroku db:push

虽然方便,但使用taps(db:push使用的)可能无法准确复制数据,并且可能会在较大的传输中出错。要从生产系统导入或导出数据,强烈建议改用PGBackup


在不透露任何敏感信息的情况下,能否显示database.yml配置文件中的内容?您可能需要指定要推送到生产环境中的本地数据库(即heroku db:pushsqlite://local.db)你在运行哪个Ruby?我在Ruby 1.9.3上遇到了一个关于db:push的问题,但是回到1.9.2就解决了。是的,我在1.9.3上,我在想这可能与它有关。我会尝试使用Ruby 1.9.2p290版本的1.9.2做同样的事情。试过这个,没有用。奇怪的是,坏拷贝总是不同的。有一次它丢失了前20张唱片,再试一次,那些唱片就在那里,中间的100张也不见了。太好了,谢谢!我刚刚为heroku安装了pgbackup插件,在pgadmin中将数据库的.dump变大,并将文件上载到AmazonS3。然后我只使用pgbackups:restore和amazons3url,并将数据库复制到fine上。这两个链接都概述了您必须做好的工作。您可能需要处理AmazonS3权限。