我试图恢复我的转储文件,但它导致了一个错误:

psql:psit.sql:27485: invalid command \N

有解决办法吗?我找了,但没有得到明确的答案。


当前回答

对我来说,与源数据库不同的是ENCODING和LOCALE。 一旦我放弃了目标DB并重新创建它,它就可以正常工作。

其他回答

在我的例子中,问题是在我的目标计算机上缺少磁盘空间。简单地增加本地存储为我解决了它。

希望这能帮助到一些人;)

我的解决办法是:

psql -U your_user your_db < your.file.here.sql  2>&1|more

这样我就可以读取错误消息

我希望这能对大家有所帮助。

我有同样的问题,我创建了一个新的数据库,并得到无效的命令\N恢复与psql。 我通过设置与旧数据库相同的表空间来解决这个问题。

例如,旧数据库备份有表空间“pg_default”,我给新数据库定义了相同的表空间,上面的错误已经消失了!

我遵循了所有这些例子,它们都失败了,出现了我们正在谈论的错误:

在Postgres中将一个表从一个数据库复制到另一个数据库

有效的是使用-C的语法,请看这里:

pg_dump -C -t tableName "postgres://$User:$Password@$Host:$Port/$DBName" | psql "postgres://$User:$Password@$Host:$Port/$DBName"

此外,如果两者之间有不同的模式,我发现改变一个dB的模式以匹配其他的表副本是必要的,例如:

DROP SCHEMA public;
ALTER SCHEMA originalDBSchema RENAME TO public;

我知道这是一个旧帖子,但我遇到了另一个解决方案:postgis没有安装在我的新版本上,这导致我在pg_dump上出现同样的错误