LINUX.ORG.RU
решено ФорумAdmin

Почему pg_restore не создаёт базу?


0

2

PostgreSQL v9.0.4. Более новую поставить нет возможности.

Делаю дамп базы:

# pg_dump -Upostgres -p5432 -Fc -b --inserts --disable-dollar-quoting database > database.dump

Затем пытаюсь на свежесозданном кластере восстановить её:

# pg_restore -C -p5432 -Upostgres ./database.dump > import.log 2> error.log

База не создаётся. Может, я чего-то не понимаю, но про опцию -C сказано:

-C create the target database

Причём, первые 20 строчек лога выдают:

--
-- PostgreSQL database dump
--

SET statement_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = off;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET escape_string_warning = off;

--
-- Name: mail_user; Type: DATABASE; Schema: -; Owner: postgres
--

CREATE DATABASE mail_user WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'ru_RU.UTF-8' LC_CTYPE = 'ru_RU.UTF-8';


ALTER DATABASE mail_user OWNER TO postgres;

То есть, даже SQL-лог выдаёт CREATE DATABASE. Что не так?

Дошло. Надо было просто указать базу template1:

# pg_restore -C -dtemplate1 -p5432 -Upostgres ./database.dump > import.log 2> error.log

Дамп залился

abr_linux
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.