无法将本地 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 时被覆盖