Восстановите или преобразуйте файл.dump в pgAdmin
У меня проблема с файлом дампа, который клиент дает мне сделать файл для соединения с базой данных postgres в php, и я делаю это сначала
- Переименуйте этот файл ssdf_master.dump в ssdf_master.sql, чтобы выполнить в pgAdmin или Navicat, но он не работает.
- Запустите этот pg_restore ssdf_master.dump и попросите пароль и введите пароль, который я сохраняю в pgAdmin, но не могу.
Мой ssdf_master.dump имеет такие символы, как \N и. и при запуске этого файла в navicat отобразить эту ошибку:
[Err] ERROR: error de sintaxis en o cerca de «01»
LINE 784: 01 Aguascalientes AGS 00000 99999 \N
Извлечение файла
--
-- PostgreSQL database dump
--
SET statement_timeout = 0;
SET client_encoding = 'LATIN1';
SET standard_conforming_strings = off;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET escape_string_warning = off;
--
-- Name: plpgsql; Type: PROCEDURAL LANGUAGE; Schema: -; Owner: postgres
--
CREATE PROCEDURAL LANGUAGE plpgsql;
ALTER PROCEDURAL LANGUAGE plpgsql OWNER TO postgres;
SET search_path = public, pg_catalog;
SET default_tablespace = '';
SET default_with_oids = false;
--
-- Name: scg; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
--
CREATE TABLE scg (
base_datos character varying(8),
ip character varying(15),
tipo character(1),
owner character varying(8),
own_passwd character varying(8)
);
ALTER TABLE public.scg OWNER TO postgres;
--
-- Data for Name: scg; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY scg (base_datos, ip, tipo, owner, own_passwd) FROM stdin;
SCGDGCA 10.18.20.150 E postgres postgres
SCGSJ 10.18.20.150 E postgres postgres
SCGDPRE 10.18.20.150 E postgres postgres
SCGDSSA 10.18.20.150 E postgres postgres
SCGDAFI 10.18.20.150 E postgres postgres
SCGSDA 10.18.20.150 E postgres postgres
SCGDPRED 10.18.20.150 E postgres postgres
\.
Примечание. Ранее я создавал базу данных под названием postgres с пользовательскими postgres без пароля.
Я надеюсь, что я объяснил!
1 ответ
Согласно извлечению файла, это дамп в текстовом формате.
Его нельзя передавать в pg_restore, потому что:
pg_restore - это утилита для восстановления базы данных PostgreSQL из архива, созданного pg_dump(1) в одном из форматов, не содержащих текст
Скорее это должно быть подано непосредственно к psql
при подключении к уже созданной базе данных, предположительно, пустой. Объекты, кажется, принадлежат postgres
так что это должно сделать:
psql -U postgres -d yourdbname < dumpfile