gpt4 book ai didi

POSTGRESQL 9.1 备份和恢复到 8.4

转载 作者:行者123 更新时间:2023-11-29 11:31:11 24 4
gpt4 key购买 nike

我正在尝试将我在本地开发的数据库上传到我们的开发服务器。

我在我的机器上安装了 PostgreSQL 9.1,而开发服务器使用的是 8.4。

尝试使用 9.1 创建的转储文件将数据库恢复到 8.4 时出现错误:

pg_restore: [archiver (db)] could not execute query: ERROR:  syntax error at or near "EXTENSION"
LINE 1: CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalo...

快速研究告诉我“EXTENSION”在 9.1 之前不存在。

我不太确定我是否应该在 pg_dump 中寻找一个忽略“扩展”的选项,因为我尝试上传的数据库依赖于大多数数据的 PostGIS 扩展。

虽然升级开发服务器并在开发服务器中安装 PostGIS 是一种选择,但我想知道一条不同的路线,其中我不需要在服务器上编辑任何东西同时保持数据库的功能我发达。

当然,我们欢迎其他解决方法,我将数据库上传到服务器的唯一目的是减少每当我需要为我们的团队部署某些东西时必须对我的项目进行的重新配置量。

最佳答案

这是一篇旧帖子,但我今天遇到了同样的问题,有一种更好更可靠的方法可以将 PG 9.1 数据库加载到 PG 8.4 服务器中。 Craig 提出的方法在目标机器上会失败,因为不会创建 PLPGSQL 语言。

pg_dump -Upostgres -hlocalhost > 9.1.db

替换这一行

CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;

用这条线

CREATE LANGUAGE plpgsql;

删除此行或注释掉

COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';

您可以使用 sed 进行更改

由于应用程序依赖性,通常无法升级 8.4 服务器。

关于POSTGRESQL 9.1 备份和恢复到 8.4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12739326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com