感谢ajax79的认真测试。我试了一下确实有这个问题。将备份出的数据用pg_restore命令恢复时查到了真正的报错来自数据库:
could not execute query: ERROR: language "plpgsql" already exists Command was: CREATE PROCEDURAL LANGUAGE plpgsql;
这个错误本身实际上并不影响你所恢复的帐套。这个错误的产生是因为Tiny使用createdb命令创建数据库,createdb默认使用template1模板,而template1模板在我们
所使用的PGSQL中已安装了plpgsql语言。Tiny恢复帐套是先要创建一个数据库(用createdb),然后将dump出的数据导入这个数据库,创建的数据库中已经有了plpgsql了与导入的
这部分重复了,就返回了一个错误码,但是整个恢复过程还是继续的。解决的办法只要将创建数据库时使用template0模板就可以了,这就要修改代码了。
[[i] 本帖最后由 digitalsatori 于 2008-5-1 03:03 编辑 [/i]]