За управление на PostgreSQL базите данни, в хостинг акаунта, е препоръчително да се използва допълнително инсталиран phpPgAdmin.
Експорт на данни в .sql файл
През phpPgAdmin може да се извърши експорт на данни от цялата база данни или за отделна схема.
В зависимост от това кои данни искате да експортирате, маркирайте съответно или името на базата данни или името на схемата и кликнете на Export.
За да се извлекат всички данни, заедно със структурата на базата/схемата, маркирайте Structure and data (1) и за Format изберете SQL (2).
От опциите маркирайте Download (3) и завършете с Export (4). Ще можете да изберете къде да се запише генерираният .sql файл, локално на вашия компютър.
Ако изберете опцията Show, вместо да се свали .sql файла, в следващ прозорец ще видите съдържанието му. Опцията Download compressed with gzip също ще генерира .sql файл с данните, но ще приложи върху него и компресиране (dump.sql.gz).
Импорт на данни от .sql файл
За да направите импорт на данни през phpPgAdmin, кликнете върху името на базата, вляво в списъка с бази.
От панела вдясно, показващ списък със схемите, кликнете на SQL и след това на Browse.
След като изберете .sql файла за импорт, завършете с Execute.
Важно: За успешен импорт на данни в PostgreSQL база данни, първо проверете дали:
- Схемата съществува.
Ако схемата, в която ще се извършва импорта, вече съществува, в .sql файла не трябва да има заявка за създаването й. Примерен код за създаване на схема, който може да се премахне от .sql файла:
CREATE SCHEMA wolf;
ALTER SCHEMA wolf OWNER TO cpuser_mypgusr;
COMMENT ON SCHEMA wolf IS ‘-‘; - В .sql файла е указан вашият потребител за базата данни, с който реално извършвате импорта. Навсякъде, където е зададено името на потребителя, трябва да е посочен вашия потребител. Например „Owner: cpuser_mypgusr„
- В .sql файла е указана правилната схема. По същия начин като с потребителя, навсякъде трябва да е зададено точното име на схемата, в която ще се извършва импорта. Задължително в реда:
SET search_path = wolf, pg_catalog;
първата схема трябва да е тази, в която ще се извърши импорта.
Всички записи от вида Schema: wolf; трябва да съдържат името на правилната схема.
Възможни съобщения за грешка при импорт
ERROR: schema „wolf“ already exists
Схемата wolf вече съществува, но в .sql файла е указано да се създаде. В този случай импорта ще се осъществи, въпреки това съобщение (точка 1).
ERROR: role „cpuser_pguser“ does not exist
Това означава, че в .sql файла трябва да промените потребителя cpuser_pguser с този, който използвате в момента за импорт на данните (точка 2).
ERROR: must be owner of extension plpgsql
Разширението plpgsql е инсталирано на сървъра и вие се опитвате да промените коментара му. Чрез това разширение се добавя възможността за ползване на процедурния/програмния език plpgsql. Този език се ползва за създаване на функции, вложени процедури и други в базата данни.
Проверете отново .sql файла и ако откриете следните редове – премахнете ги:
CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
COMMENT ON EXTENSION plpgsql IS ‘PL/pgSQL procedural language’;
ERROR: relation „users“ already exists
ERROR: function „date_format“ already exists with same argument types
ERROR: relation „wolf_cron“ already exists
Съобщения за грешка, в които има текст „already exists„, означават, че посочения елемент вече е наличен в базата данни. Уверете се, преди импорта, че базата/схемата е чиста, тоест в нея няма вече създадени със същите имена – схеми (schemas), таблици (tables), ограничения (constraints); броячи (sequences), функции (functions) и други.