Pgadmin

如何在沒有 PSQL 控制台外掛的情況下使用 pgAdmin 導入數據庫轉儲 (.sql)?

  • May 23, 2014

我正在嘗試使用 pgAdmin 導入數據庫轉儲 (.sql)。我想只使用 GUI,而不是 PSQL 控制台(我可以在 Unix 或 Windows 上導入 sql轉儲 \i /path/to/yourfile.sql\i C:\\yourfile.sql。那可能嗎?如果是這樣,怎麼做?

新的導入工具似乎只能導入表中的數據:

在此處輸入圖像描述

恢復功能似乎不接受 .sql:

在此處輸入圖像描述

最後,我無法在查詢生成器中載入我嘗試導入的 .sql,因為它太大(25 GB)。

我已使用此 pl/pgsql 函式為每個表創建一個 .csv 文件:

CREATE OR REPLACE FUNCTION db_to_csv(path TEXT) RETURNS void AS $$
declare
 tables RECORD;
 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;

我這樣使用它:

SELECT db_to_csv('/home/user/dir');
-- this will create one csv file per table, in /home/user/dir/

引用自:https://dba.stackexchange.com/questions/57340