当我尝试将转储文件恢复到另一个(本地)PostgreSQL 服务器(在 Debian GNU/Linux 10.10 上运行)时,出现以下错误:
\npg_restore: error: could not execute query: ERROR: option "locale" not recognized\n
Run Code Online (Sandbox Code Playgroud)\n因为它确实有以下行:
\nCREATE DATABASE "REMOTE_DB" WITH TEMPLATE = template0 ENCODING = \'UTF8\' LOCALE = \'en_GB.UTF-8\';\n
Run Code Online (Sandbox Code Playgroud)\n是的,我知道PostgreSQL 12 CREATE DATABASE命令没有选项LOCALE
。
我不明白的是:
\npg_dump
我在本地服务器上使用的版本报告为 12.7pg_restore
我在本地服务器上使用的版本报告为 12.7pg_dump
是版本 12.7,而不是 13。让我一一验证一下:
\n我的本地服务器:
\n$ sudo -u postgres …
Run Code Online (Sandbox Code Playgroud) 我想我进行了错误的数据库恢复,或者转储没有此数据,并且“类似文件夹”的结构丢失了。这是 Dbeaver 的捕获,显示了我对“类似文件夹”结构的理解。我可以轻松访问存储在数据库定义中的函数、表、模式等。我不太担心原始结构的丢失,因为它没有太多,但我确实想在需要时逐步重新创建它。例如,现在我创建了一个函数并希望在“Functions”文件夹下看到它,我该怎么做?
另外,我应该在 pg_dump 生成脚本中包含什么来备份这个结构?
谢谢。