Я огляделся и нашел следующий код о том, как импортировать дамп данных с помощью 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;
Похоже, это именно то, что мне нужно, поскольку я новичок в базах данных, но разбираюсь в файлах .csv. Проблема в том, что я действительно не знаю, как правильно настроить эту функцию. В определении мне нужно указать язык (в ответе указано, что это plpgsql) и тип возвращаемого значения. Я не уверен, какой должен быть возвращаемый тип. Более того, и это, вероятно, звучит довольно глупо, я хотел бы подтвердить, что я должен заменить TEXT на путь к моему файлу дампа .sql. Спасибо за любую помощь!
Эта функция создает дамп данных, а не импортирует его, что является противоположностью тому, что вы хотите сделать. ТЕКСТ, о котором вы говорите, - это путь к CSV-файлу, который он сгенерирует.
PgAdmin 1.4, похоже, имеет средство восстановления: http://www.pgadmin.org/docs/1.4/restore.html
Если вы пытаетесь импортировать данные в одну таблицу, вы можете щелкнуть правой кнопкой мыши таблицу в PgAdmin и выбрать импорт.
Если вы пытаетесь импортировать данные для всей базы данных и открыты для других вариантов помимо PgAdmin, вы можете использовать psql:
psql -h host -U username dbname < data.dmp