heroku pgbackups:恢复不在rails app上工作

时间:2014-11-25 14:01:52

标签: ruby-on-rails ruby heroku

出于某种原因,heroku pgbackups:restore将无法在我的rails应用程序上运行,

我正在使用以下命令创建我的dumpfile:

pg_dump -F c -v -U john -h localhost project_development > -f dumpfile.dump

然后我将其上传到dropbox,因为heroku文档说需要使用HTTP可访问的URL上传到某处。我将文件上传到dropbox后,然后运行命令

heroku pgbackups:restore HEROKU_POSTGRESQL_RED_URL 'https://dl.dropboxusercontent.com/content_link/JgHkmg0iv8vIMKWqlN6medJqjClPeWYl2AQqJWV8IeEiujnfYvPdtvq7xh26dvCQ'

其输出为

Retrieving... done
Restoring... done

HEROKU_POSTGRESQL_RED_URL是我的数据库网址,单引号中的行是我的dumpfile的原始版本(dropbox文档显示了如何将dl文件转换为原始文件)。

但每当进入我的应用主页时,我都会收到错误,我可以通过运行heroku logs看到该错误是数据库错误

PG::UndefinedTable: ERROR:  relation "listings" does not exist
LINE 1: SELECT  "listings".* FROM "listings"   ORDER BY listings.pri..

此外,当我运行heroku pg:info时,我可以看到实际上没有任何内容插入数据库

=== HEROKU_POSTGRESQL_RED_URL (DATABASE_URL)
Plan:        Hobby-dev
Status:      Available
Connections: 2/20
PG Version:  9.3.4
Created:     2014-10-21 15:24 UTC
Data Size:   7.0 MB
Tables:      0
Rows:        0/10000 (In compliance)
Fork/Follow: Unsupported
Rollback:    Unsupported

有谁能告诉我为什么我的数据库没有更新?感谢。

1 个答案:

答案 0 :(得分:1)

我在heroku的空白爱好开发数据库上测试了这个。您不需要包含no-owner和no-acl选项(-x -O),但它被视为良好做法,因为这些alter语句将失败。

dump命令的问题是迷路>

pg_dump -F c -v -O -x -U john -h localhost project_development -f dumpfile.dump

将生成的文件上传到dropbox或s3,然后再次尝试还原。如果有错误,您可以运行

heroku logs -n 100 --ps pgbackups

要查看pg_restore命令的日志输出。