【问题标题】:Migrating database from local development to Heroku-Django 1.8将数据库从本地开发迁移到 Heroku-Django 1.8
【发布时间】:2015-09-12 12:16:38
【问题描述】:

使用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 文件上传到 Dropbox,然后使用以下命令将转储加载到我的 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

网上没有太多关于这个错误的信息,我无法弄清楚问题是什么。

【问题讨论】:

  • 数据库有多大?
  • @TommasoBarbugli 7.4mb。我有一个免费的 heroku 帐户。数据库大小是否太大?
  • 问题实际上可能完全不同:Dropbox 通常不会在该链接上提供原始文件。相反,它提供下载页面。在 URL 末尾添加 ?raw=1 以检索原始文件并与 heroku pg:backups 一起使用。

标签: python django postgresql heroku django-database


【解决方案1】:

对于 Windows 用户;

heroku pg:backups:restore "https://s3.amazonaws.com/me/items/3H0q/mydb.dump" DATABASE_URL

根据官方文档,如果您使用的是 Windows,请务必在远程 url 周围使用双引号。 see official docs

【讨论】:

    【解决方案2】:

    您可以使用: heroku pg:push mylocaldb HEROKU_POSTGRESQL_MAGENTA --app sushi

    来源:https://devcenter.heroku.com/articles/heroku-postgresql#pg-push

    【讨论】:

      【解决方案3】:

      我也遇到过这个错误,我的解决方案有点不同。问题与使用的格式有关。我需要在转储数据库时使用 --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
      

      希望这对将来的某人有所帮助!

      【讨论】:

      • 我刚刚登录,所以我可以投票给你并发表评论。这救了我的培根,是我的解决方案。非常感谢!!!
      • "--format=c " 就是缺少的东西,完美,谢谢
      【解决方案4】:

      如果数据库很小并且你觉得幸运的话,这可能会做到

      pg_dump --no-acl --no-owner -h localhost -U myuser myd | heroku pg:psql
      

      【讨论】:

      • 成功了。想知道为什么我使用的语句不起作用,因为这是 heroku docs 推荐的导入数据库。
      • 你是个救命的家伙。
      • 我收到错误:此 cmd 缺少必需的标志
      猜你喜欢
      • 2015-09-11
      • 2015-09-10
      • 2023-03-05
      • 2015-04-23
      • 1970-01-01
      • 2016-06-03
      • 2014-10-16
      • 2022-07-25
      • 2020-09-29
      相关资源
      最近更新 更多