我已经从一台带有 postgresql 8.4 和 postgis 1.5 的旧 Ubuntu 机器上转储了一个数据库。在新的 ubuntu 12.04 上,我还安装了 Postgresql 9.1 和 postgis 1.5。(使用 postgis.sql 和 spatial_ref_sys.sql 创建了 postgis_template)。
当我在新机器上恢复转储时,数据已构建,但我收到 25 条类似这样的错误消息
...
pg_restore: [archiver (db)] Error from TOC entry 711; 1255 18533 FUNCTION gidx_in(cstring) postgres
pg_restore: [archiver (db)] could not execute query: ERROR: function public.gidx_in(cstring) does not exist
Command was: DROP FUNCTION public.gidx_in(cstring);
pg_restore: [archiver (db)] Error from TOC entry 34; 1255 17743 FUNCTION geometry_send(geometry) postgres
pg_restore: [archiver (db)] could not execute query: ERROR: type "geometry" does not exist
Command was: DROP FUNCTION public.geometry_send(geometry);
pg_restore: [archiver (db)] Error from TOC entry 33; 1255 17742 FUNCTION geometry_recv(internal) postgres
pg_restore: [archiver (db)] could not execute query: ERROR: function public.geometry_recv(internal) does not exist
Command was: DROP FUNCTION public.geometry_recv(internal);
pg_restore: [archiver (db)] Error from TOC entry 31; 1255 17740 FUNCTION geometry_out(geometry) postgres
pg_restore: [archiver (db)] could not execute query: ERROR: type "geometry" does not exist
Command was: DROP FUNCTION public.geometry_out(geometry);
pg_restore: [archiver (db)] Error from TOC entry 30; 1255 17739 FUNCTION geometry_in(cstring) postgres
pg_restore: [archiver (db)] could not execute query: ERROR: function public.geometry_in(cstring) does not exist
Command was: DROP FUNCTION public.geometry_in(cstring);
pg_restore: [archiver (db)] Error from TOC entry 709; 1255 18529 FUNCTION geography_out(geography) postgres
pg_restore: [archiver (db)] could not execute query: ERROR: type "geography" does not exist
Command was: DROP FUNCTION public.geography_out(geography);
任何人都可以解释发生了什么吗?我可以忽略这些错误吗?
谢谢!亲切的问候,
托尼
您有多个错误。您需要仔细阅读它们,然后阅读您的转储文件(找到上面错误中引用的行并确定这些错误发生的位置是否是一个严重的问题,或者您可以忽略)——我们无法告诉您,因为我们真的不知道在你的环境中什么是重要的。
从我在您的错误消息中看到的内容来看,您的转储文件似乎
DROP
在实际加载数据之前尝试清理旧的数据库内容(函数、类型和表),所以如果您要恢复到没有现有数据的系统,您当它试图删除不存在的对象时会出错。如果这是正在发生的事情,您可能不必担心错误(尽管您可能希望在没有“清理”命令的情况下进行转储以供将来使用,因此您不会得到它们 - 请参阅
pg_dump
手册页以获取信息关于如何做到这一点)。现在,如果您开始在创建功能/程序时遇到错误,则这些错误更可能是严重的,需要调查和纠正。