将数据库从本地开发迁移到 Heroku-Django 1.8
Migrating database from local development to Heroku-Django 1.8
使用heroku addons:create heroku-postgresql:hobby-dev
建立数据库后,我尝试将本地数据库迁移到heroku数据库。所以我先运行
heroku python manage.py migrate
。之后,我使用 pg_dump -Fc --no-acl --no-owner -h localhost -U myuser mydb > mydb.dump
创建了本地数据库的转储文件。我将 mydb.dump
文件上传到保管箱,然后使用以下命令将转储加载到我的 heroku 数据库
heroku pg:backups restore'https://www.dropbox.com/s/xkc8jhav70hgqfd/mydb.dump?' HEROKU_POSTGRESQL_COLOR_URL
但是,这会引发以下错误 -
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.
然后 运行 heroku pg:backups info r004
我得到 -
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
网上关于这个错误的资料不多,我也搞不清楚是什么问题。
如果数据库很小,而且你觉得幸运的话,这可能会成功
pg_dump --no-acl --no-owner -h localhost -U myuser myd | heroku pg:psql
我也遇到过这个错误,我的解决方案有点不同。问题与使用的格式有关。转储数据库时我需要使用 --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
希望这对以后的人有所帮助!
您可以使用:
heroku pg:push mylocaldb HEROKU_POSTGRESQL_MAGENTA --app sushi
来源:https://devcenter.heroku.com/articles/heroku-postgresql#pg-push
对于 windows 用户;
heroku pg:backups:restore "https://s3.amazonaws.com/me/items/3H0q/mydb.dump" DATABASE_URL
根据官方文档,如果您使用 windows,请务必在遥控器 url 周围使用双引号。 see official docs
使用heroku addons:create heroku-postgresql:hobby-dev
建立数据库后,我尝试将本地数据库迁移到heroku数据库。所以我先运行
heroku python manage.py migrate
。之后,我使用 pg_dump -Fc --no-acl --no-owner -h localhost -U myuser mydb > mydb.dump
创建了本地数据库的转储文件。我将 mydb.dump
文件上传到保管箱,然后使用以下命令将转储加载到我的 heroku 数据库
heroku pg:backups restore'https://www.dropbox.com/s/xkc8jhav70hgqfd/mydb.dump?' HEROKU_POSTGRESQL_COLOR_URL
但是,这会引发以下错误 -
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.
然后 运行 heroku pg:backups info r004
我得到 -
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
网上关于这个错误的资料不多,我也搞不清楚是什么问题。
如果数据库很小,而且你觉得幸运的话,这可能会成功
pg_dump --no-acl --no-owner -h localhost -U myuser myd | heroku pg:psql
我也遇到过这个错误,我的解决方案有点不同。问题与使用的格式有关。转储数据库时我需要使用 --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
希望这对以后的人有所帮助!
您可以使用:
heroku pg:push mylocaldb HEROKU_POSTGRESQL_MAGENTA --app sushi
来源:https://devcenter.heroku.com/articles/heroku-postgresql#pg-push
对于 windows 用户;
heroku pg:backups:restore "https://s3.amazonaws.com/me/items/3H0q/mydb.dump" DATABASE_URL
根据官方文档,如果您使用 windows,请务必在遥控器 url 周围使用双引号。 see official docs