错误:命令为:SELECT pg_catalog.setval

时间:2016-05-06 23:24:53

标签: postgresql heroku

我无法在heroku数据库上恢复备份数据库,但如果我在本地环境恢复并且没有错误,我就不会有任何问题。

当我尝试在heroku connect数据库上恢复时,出现以下错误:

  

C:\ Program Files \ PostgreSQL \ 9.4 \ bin \ pg_restore.exe --host   XXXXXX.compute-1.amazonaws.com --port 5432 --username   " XXXXokwpyzewicl" --dbname" d9uto7paqXXX" --no-password --verbose

     

" C:\用户\ XXXX \桌面\ loans.backup"

     

pg_restore:连接到   用于恢复的数据库pg_restore:隐含的仅数据恢复

     

pg_restore:处理表" application_denial_reason_types"

的数据      

pg_restore:[archiver(db)]处理TOC时出错:

     

pg_restore:[archiver(db)]来自TOC条目5202的错误; 0 16622表数据application_denial_reason_types postgres

     

pg_restore:[archiver(db)]无法执行查询:ERROR:relation" application_denial_reason_types"不存在   命令为:COPY application_denial_reason_types(denial_reason_type_id,denial_reason_type_name,description,active,created_by,creat ... pg_restore:执行SEQUENCE SET application_denial_reason_types_denial_reason_type_id_seq

     

pg_restore:[archiver(db)]来自TOC条目5672的错误; 0 0 SEQUENCE SET   application_denial_reason_types_denial_reason_type_id_seq postgres

     

pg_restore:[archiver(db)]无法执行查询:错误:关系   " application_denial_reason_types_denial_reason_type_id_seq"才不是   存在LINE 1:SELECT pg_catalog.setval(' application_denial_reason_types_de ...                                    ^       命令是:SELECT pg_catalog.setval(' application_denial_reason_types_denial_reason_type_id_seq',   1,假);

如何修复此错误?

1 个答案:

答案 0 :(得分:0)

尝试设置不存在序列的值:

  

pg_restore:[archiver(db)]无法执行查询:错误:关系   “application_denial_reason_types_denial_reason_type_id_seq”没有   存在

了解理由:

  

pg_restore:连接到数据库以进行恢复pg_restore:隐含   仅数据恢复

如果您检查man pg_restore,您会发现:

   -a
   --data-only
       Restore only the data, not the schema (data definitions). Table data, large objects, and sequence values are restored, if
     

出现在档案中。

因此,您可能在本地env上有数据结构,这就是为现有序列设置值的原因。 heroku上没有结构,所以你会收到错误。

-a命令中删除pg_restore以在数据恢复之前运行DDL。