After establishing a database using heroku addons:create heroku-postgresql:hobby-dev
, I tried to migrate my local database to heroku database. So I first ran
heroku python manage.py migrate
. After that I created a dump file of my local database using pg_dump -Fc --no-acl --no-owner -h localhost -U myuser mydb > mydb.dump
. I uploaded my mydb.dump
file to dropbox and then used the following command to load the dump to my heroku database
heroku pg:backups restore'https://www.dropbox.com/s/xkc8jhav70hgqfd/mydb.dump?' HEROKU_POSTGRESQL_COLOR_URL
But, that throws the following error -
r004 ---restore---> HEROKU_POSTGRESQL_PURPLE
[0KRunning... 0.00B..
[0KAn error occurred and your backup did not finish.
Please run `heroku pg:backups info r004` for details.
And on running heroku pg:backups info r004
I get -
Database: BACKUP
Started: 2015-06-25 18:19:37 +0000
Finished: 2015-06-25 18:19:38 +0000
Status: Failed
Type: Manual
Backup Size: 0.00B
=== Backup Logs
2015-06-25 18:19:38 +0000: waiting for restore to complete
2015-06-25 18:19:38 +0000: pg_restore: [archiver] did not find magic string in file header
2015-06-25 18:19:38 +0000: restore done
2015-06-25 18:19:38 +0000: waiting for download to complete
2015-06-25 18:19:38 +0000: download done
There is not much information on this error online and I can't figure out what the problem is.
答案 0 :(得分:17)
如果数据库很小并且你觉得这很幸运,那么
pg_dump --no-acl --no-owner -h localhost -U myuser myd | heroku pg:psql
答案 1 :(得分:9)
我也有这个错误,我的解决方案有点不同。问题与使用的格式有关。转储数据库时我需要使用--format = c。
为了解决这个问题,我使用--format = c
再次转储数据库pg_dump --no-acl --no-owner --format=c database_name > db.dump
然后将其导入我的heroku应用
heroku pg:backups restore 'url_for_db.dump' DATABASE_URL
希望这可以帮助将来的某个人!
答案 2 :(得分:1)
您可以使用:
heroku pg:push mylocaldb HEROKU_POSTGRESQL_MAGENTA --app sushi
来源:https://devcenter.heroku.com/articles/heroku-postgresql#pg-push
答案 3 :(得分:1)
对于Windows用户;
heroku pg:backups:restore "https://s3.amazonaws.com/me/items/3H0q/mydb.dump" DATABASE_URL
根据官方文档,如果您使用的是Windows,请务必在远程网址周围使用双引号。 see official docs