【发布时间】:2012-06-06 20:00:26
【问题描述】:
我正在尝试将我的生产 Heroku 数据库导入我的开发机器。
我的本地数据库是 PostgreSQL。
首先,我将转储从 Heroku 导出到我的机器
curl -o latest.dump `heroku pgbackups:url`
然后,我尝试使用rake db:drop 删除本地数据库,然后使用rake db:create 再次创建空数据库。
我遇到的问题是实际尝试将转储导入数据库时
psql -d app_development -U myusername -f mydumpfile.sql
我开始看到这样的错误
psql:latest.dump:24: ERROR: syntax error at or near "PGDMP"
LINE 1: PGDMP
^
psql:latest.dump:28: ERROR: syntax error at or near ""
LINE 1: INCREMENT BY 1
^
psql:latest.dump:36: ERROR: syntax error at or near ""
LINE 1: id integer NOT NULL,
^
psql:latest.dump:40: ERROR: syntax error at or near ""
LINE 1: INCREMENT BY 1
^
psql:latest.dump:45: ERROR: syntax error at or near ""
LINE 1: id integer NOT NULL,
^
psql:latest.dump:49: ERROR: syntax error at or near ""
LINE 1: INCREMENT BY 1
...
psql:latest.dump:1601: invalid command \S4???(?̭?A?|c?e0<00K?A?}FϚ?????A(??~?t?I?????G(? K???l??k"?H?ȁ?ͲS?,N*?[(@??a5J??j}
psql:latest.dump:1602: invalid command \??k???|??w???h?
psql:latest.dump:1603: invalid command \=??????o?h?
psql:latest.dump:1609: invalid command \????^.?????????E???/-???+??>#?ؚE?.2)Ȯ&???? g????"7},_??]?:?f?Tr|o???)?p????h?KO?08[Rqu???|3?cW?ڮ?ahbm??H?H8??$???2?a?-أ
psql:latest.dump:1613: invalid command \D!qVS???L??*??R??I!???
psql:latest.dump:1614: invalid command \??-?}Q
psql:latest.dump:12565: ERROR: invalid byte sequence for encoding "UTF8": 0xb0
知道发生了什么以及如何解决它吗?
【问题讨论】:
-
您不使用 Taps 是否有特定原因rubydoc.info/gems/taps/0.3.24/frames?它允许您运行一个简单的
heroku db:pull来填充本地数据库。我不确定这是否会解决你的问题,但它更方便:) -
其实你是对的。安装了水龙头 gem,现在它可以完美运行了。出于某种原因,即使我使用的是 postgresql,taps gem 仍然需要在 gem 文件上声明 taps 和 sqlite3。想试试你的答案吗?
-
完成了。关于 gem 要求,是的,即使您使用的是 PG,也需要声明这些要求有点烦人。 ://