PostgreSQL和postgresql-client的版本不匹配,导致出错

在Rails中,有两种方法可以进行数据库备份。当我尝试用SQL设置备份并迁移时,我收到了以下错误提示。

pg_dump: server version: 12beta2 (Debian 12~beta2-1.pgdg100+1); pg_dump version: 11.4 (Debian 11.4-1)
pg_dump: aborting because of server version mismatch

好像版本不相符。

确认了一下,PostgreSQL的版本是12beta2。

# psql --version

psql (PostgreSQL) 12beta2 (Debian 12~beta2-1.pgdg100+1)

PostgreSQL客户端的版本是11.4。

# pg_config

VERSION = PostgreSQL 11.4 (Debian 11.4-1)

我想升级客户端的版本,做了很多调查,
目前最新的版本似乎是11,
可是我自己无能为力,无法完成…

我们决定将PostgreSQL的版本降低到11。

由于在docker-compose.yml文件中构建了PostgreSQL,请将image设置为postgres:11。

我选择安装PostgreSQL客户端时指定了版本为postgresql-client-11。

当执行迁移时…

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;

SET default_tablespace = '';

SET default_with_oids = false;

--
-- Name: ar_internal_metadata; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.ar_internal_metadata (
    key character varying NOT NULL,
    value character varying,
    created_at timestamp without time zone NOT NULL,
    updated_at timestamp without time zone NOT NULL
);

可以了。

结束

在构建数据库时,我们还必须考虑客户端的版本,是吧~

广告
将在 10 秒后关闭
bannerAds