Importando dados de despejo usando pgAdmin

1

Eu olhei em volta e encontrei o seguinte código sobre como importar um dump de dados usando o pgadmin:

CREATE OR REPLACE FUNCTION db_to_csv(path TEXT) RETURNS void AS $$
  tables RECORD;
gmdeclare
  statement TEXT;
begin
  FOR tables IN 
    SELECT (table_schema || '.' || table_name) AS schema_table
    FROM information_schema.tables t INNER JOIN information_schema.schemata s 
    ON s.schema_name = t.table_schema 
    WHERE t.table_schema NOT IN ('pg_catalog', 'information_schema', 'configuration')
    ORDER BY schema_table
  LOOP
    statement := 'COPY ' || tables.schema_table || ' TO ''' || path || '/' || tables.schema_table || '.csv' ||''' DELIMITER '';'' CSV HEADER';
    EXECUTE statement;
  END LOOP;
  return;  
end;
$$ LANGUAGE plpgsql;

Isso parece exatamente o que eu preciso desde que eu sou muito novo para bancos de dados, mas sei o meu caminho em torno de arquivos .csv. O problema é que eu não sei realmente como configurar esta função corretamente. Na definição, preciso especificar um idioma (declarado como plpgsql na resposta) e um tipo de retorno. Não tenho certeza qual deve ser o tipo de retorno. Além disso, e isso provavelmente soa muito bobo, eu gostaria de confirmar que eu deveria substituir o texto com o caminho para o meu arquivo de despejo de .sql. Obrigado por toda e qualquer ajuda!

    
por Max Power 15.01.2015 / 22:03

1 resposta

2

Esta função cria um dump de dados, não importa, o que é o oposto do que você deseja fazer. O TEXTO a que você está se referindo é o caminho para o arquivo CSV que será gerado.

O PgAdmin 1.4 parece ter um recurso de restauração: link

Se você estiver tentando importar dados em uma única tabela, clique com o botão direito do mouse na tabela no PgAdmin e selecione Importar.

Se você está tentando importar dados para o banco de dados inteiro e está aberto a outras opções além do PgAdmin, você pode usar o psql:

psql -h host -U username dbname < data.dmp
    
por 27.01.2015 / 17:46