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
);
可以了。
结束
在构建数据库时,我们还必须考虑客户端的版本,是吧~