无法将本地 Postgres 数据库推送到 Heroku

Posted

技术标签:

【中文标题】无法将本地 Postgres 数据库推送到 Heroku【英文标题】:Can't push local Postgre database to Heroku 【发布时间】:2020-12-30 01:55:54 【问题描述】:

我在将本地数据库导入 Heroku 时遇到问题。我目前正在构建一个 Django Web 应用程序,我试图了解如何将本地数据库导入 Heroku。我正在尝试使用 pg:push 推送我的本地 Postgresql 数据库命令然后这个错误发生

pg_restore: error: unrecognized data block type (0) while searching archive
 !    pg_restore errored with 1

知道为什么会这样吗?

【问题讨论】:

仔细检查PostgreSQL版本,不同的版本可能会导致错误。还要确保你使用了heroku pg:push 命令(看起来不错,很好)。 我在本地和 Heroku 上使用 Postgres 12.4 时遇到同样的错误。您可以使用postgres -V 查看本地版本。您可以使用heroku pg:info --app app-name 查看 Heroku 版本。 我在使用 13.2 版本时遇到了同样的问题。 大家好,你们找到解决办法了吗?我也遇到了这个问题,但无法解决。我对两者都使用了 psql 13.2。 我已经向 heroku 提交了 13.2 错误的票证,其中本地构建和 heroku postgres 版本都是 13.2,但错误仍然存​​在。票解决后我会在这里发帖。 【参考方案1】:

我是一个懒惰的程序员,而且效率很高,所以这比为 AWS 备份支付费用要容易得多,将它们存储在 Excel 表中。 这样既节省了成本,又不使用效率不高的 PUSH: PULL。

使用 CMD 作为 ADMIN 将 Excel 数据插入 Heroku Postgres 数据库。

按照说明进行

1. OPEN CMD AS ADMIN

2. heroku pg:sql postgresql-rugged-08088 --app sample

3. CREATE TABLE SERIAL_T (  id SERIAL , SERIAL VARCHAR(50),  USE INT,    DEVICES TEXT[], PRINTED BOOLEAN,  PRIMARY KEY (id))

4. \COPY SERIAL_T (SERIAL, USE, DEVICES, PRINTED) FROM 'C:\Users\PATH\EXCEL-03-27-2021.csv' DELIMITER ','CSV HEADER;

【讨论】:

以上是关于无法将本地 Postgres 数据库推送到 Heroku的主要内容,如果未能解决你的问题,请参考以下文章

symmetricds 3.10.4 将数据从 oracle 推送到 postgres

将 spark current_timestamp 值推送到带有 timezone 列的 postgres 时间戳

防止 Django SQLite db 在推送到 Heroku 时被覆盖

如何将本地更改推送到 Bitbucket 上的远程 Git 存储库

无法连接到服务器:PostgreSQL -Heroku

SourceTree 将本地已有的git项目推送到远程git仓库