Postgresql 将file.dump还原或转换为pgAdmin

Postgresql 将file.dump还原或转换为pgAdmin,postgresql,dump,pgadmin,navicat,Postgresql,Dump,Pgadmin,Navicat,客户端给我一个转储文件,让我在php中创建一个与postgres数据库连接的文件,我遇到了一个问题,我先这样做 将此文件重命名为ssdf_master.dump为ssdf_master.sql以在pgAdmin或Navicat中执行,但不起作用 运行此pg_restoressdf_master.dump并要求输入密码,然后键入我保存在pgAdmin中但不保存的密码 我的ssdf_master.dump具有以下字符\N和。在navicat中运行该文件时,会显示以下错误: [Err] ERROR:

客户端给我一个转储文件,让我在php中创建一个与postgres数据库连接的文件,我遇到了一个问题,我先这样做

  • 将此文件重命名为ssdf_master.dumpssdf_master.sql以在pgAdmin或Navicat中执行,但不起作用
  • 运行此pg_restoressdf_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没有pasword


    我希望我已经解释过了

    根据文件摘录,这是纯文本格式的转储

    不应将其传递给pg_restore,因为:

    pg_restore是一个用于从数据库中恢复PostgreSQL数据库的实用程序 由pg_dump(1)以一种非纯文本格式创建的存档

    相反,当它连接到一个已经创建的数据库时,它应该直接输入到
    psql
    ,可能是空的。这些对象似乎属于
    postgres
    ,因此应该这样做:

    psql -U postgres -d yourdbname < dumpfile
    
    psql-U postgres-d yourdbname
    serverfault.com可能是询问牙床的好地方,我也把它放在那里了!交叉张贴在这里:但要友善,士兵公司是被告知的。您需要实际查看文件的内容,比如前50行,以找出其中的内容。如果对你来说没有意义,就把它们加到问题中去。2.使用命令行
    psql
    而不是GUI,这样做更简单。@DanielVéritéI发布了一个文件摘要。。。关于使用psql,我使用了,但没有插入表和数据。。。我想是可行的,但是我检查了数据库和表,避免了错误,我不明白!当运行您的行“psql-U…”时,显示如下内容:Error:La relacón“scg”ya existe“还原到非空数据库时,可能会发生有关现有对象的错误。由于以前的恢复中途失败,因此会出现非空数据库。在导入数据库之前,您可以删除并重新创建数据库。在windows中很难配置,在Linux中很容易,您的线路也可以正常工作,谢谢。