我正在尝试恢复我的转储文件,但是出现了错误:
psql:psit.sql:27485: invalid command \N
有解决方案吗?我搜索过,但没有得到明确的答案。
我正在尝试恢复我的转储文件,但是出现了错误:
psql:psit.sql:27485: invalid command \N
有解决方案吗?我搜索过,但没有得到明确的答案。
大多数情况下,解决方案是安装postgres-contrib
软件包。
对我来说,问题在于编码和区域设置与源数据库不同。一旦我删除了目标数据库并重新创建它,问题就得到解决。
pg_dump ... > filename
将文件写出,这显然会破坏输出。相反,我需要使用pg_dump ... -f filename
将文件写出。一旦我用这种方式创建了备份文件,它就可以顺利地恢复了。对于我在SUSE 12上使用postgreSQL 10,我通过增加磁盘空间解决了invalid command \N
错误。对我来说,磁盘空间不足导致了这个错误。如果您查看数据所在的文件系统的df -h
输出,就可以知道是否磁盘空间已满。如果文件系统/挂载使用率达到100%,那么在执行像psql -f db.out postgres
(请参见https://www.postgresql.org/docs/current/static/app-pg-dumpall.html)之类的操作后,您可能需要增加可用的磁盘空间。
我按照所有这些例子操作,但它们都以我们所谈论的错误而失败:
真正奏效的是使用-C语法,见此处:
pg_dump -C -t tableName "postgres://$User:$Password@$Host:$Port/$DBName" | psql "postgres://$User:$Password@$Host:$Port/$DBName"
DROP SCHEMA public;
ALTER SCHEMA originalDBSchema RENAME TO public;
检查表中的列和备份文件中的列是否匹配