尝试还原PostgreSQL转储时出现很多“无效命令\ N”

And*_*rey 5 postgresql dump pg-dump database-restore

我在Mac上进行了数据库备份,并尝试在具有ubuntu的计算机上还原该数据库。当我执行

psql -U uname -d dbname -f ~/dump_from_mac
Run Code Online (Sandbox Code Playgroud)

我有很多错误消息,例如“无效命令\ N”和“关系'SomeTable'不存在”。我的问题与无法使用pg_dump将表复制到另一个数据库非常相似, 但是我不知道如何解决我的转储文件。我擦拭了Mac,无法进行新的转储。

And*_*rey 7

我的问题是通过设置 postgresql-contrib 包解决的

sudo apt-get install postgresql-contrib
Run Code Online (Sandbox Code Playgroud)

并在我的数据库中创建扩展 uuid-ossp

CREATE EXTENSION "uuid-ossp";
Run Code Online (Sandbox Code Playgroud)

我的数据库默认没有这个扩展名,psql 无法从我的转储文件中执行 uuid_generate_v1() 函数。在大多数情况下,安装 postgresql-contrib 就足够了,但有时问题也可能出在某些错过的扩展中。