出于某种原因,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
有谁能告诉我为什么我的数据库没有更新?感谢。
答案 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命令的日志输出。