我刚刚在Windows上安装了一个新的PostgreSQL 9.5服务器。
当我尝试还原数据库时出现错误消息。
pg_restore:[archiver(db)]初始化时出错:pg_restore: [archiver(db)]无法执行查询:ERROR:未识别配置参数“row_security” Command was:SET row_security = off;
这是什么原因?
我刚刚在Windows上安装了一个新的PostgreSQL 9.5服务器。
当我尝试还原数据库时出现错误消息。
pg_restore:[archiver(db)]初始化时出错:pg_restore: [archiver(db)]无法执行查询:ERROR:未识别配置参数“row_security” Command was:SET row_security = off;
这是什么原因?
row_security
配置设置是9.5版新功能,该错误提示表明您正在将9.5版数据库的备份恢复到旧版本的PostgreSQL中,这种组合不受支持,因为新功能无法与旧服务器一起使用。
在本地数据库上开发并部署到远程数据库时,开发应该在与远程数据库相同的主要版本上进行。
在10版之前,Postgres 使用X.Y.Z
约定,其中X.Y
是主要版本,Z
是仅向X.Y
添加错误修复的小版本。
从10版本开始,它是X.Z
,其中X
是主要版本,Z
是修订号。
SET row_security = off;
,那么这意味着目标数据库不支持该功能,这是无害的。如果源数据库积极使用此功能,则会出现与策略创建相关的其他错误。 - Daniel Vérité我在一台新的Windows 10桌面电脑上使用pgAdmin3编辑运行Postgres 9.3的服务器。使用pgAdmin3 v1.22.1时出现了“行安全性错误”。我重新安装了pgAdmin3 v1.20.2,错误不再出现。