Я делаю команду pg_dump следующим образом:Могу ли я остановить «Общественную» схему от выпадения с помощью pg_dump?
/Library/PostgreSQL/8.4/bin/pg_dump --host localhost --port 5432 --username xxx --format plain --clean --inserts --verbose --file /Users/xxx/documents/output/SYSTEM_admin_20131203101809.sql --exclude-table public.dbmirror_mirroredtransaction --exclude-table public.dbmirror_mirrorhost --exclude-table public.dbmirror_pending --exclude-table public.dbmirror_pendingdata --exclude-table public.mdflog --exclude-table public.fcpersistentstore --exclude-table public.backup_restore --exclude-table public.mdflogeventcode testdb
У меня есть проблема в том, что в простом SQL файл, который создается он добавляет команду, чтобы попытаться уронить все ОБЩЕСТВЕННУЮ схему, как показан в этом фрагмент кода:
...
DROP FUNCTION public.f_updateeventlog();
DROP FUNCTION public.f_updateadmindata();
DROP PROCEDURAL LANGUAGE plpgsql;
DROP SCHEMA public;
CREATE SCHEMA public;
ALTER SCHEMA public OWNER TO postgres;
COMMENT ON SCHEMA public IS 'standard public schema';
...
Я нЕ хочу, чтобы удалить все другие объекты, я не исключенные в параметрах исключения-таблицы я представил, но я не хочу, чтобы это DROP схемы.
Я попытался добавить схему как параметр исключаемой таблицы, но это не сработало.
Я использую Postgresql 8.4 для pg_dump.
EDIT: Я хотел обновить этот вопрос и сказать, что я считаю, что невозможно получить pg_dump, чтобы исключить общедоступную команду DROP/CREATE в обычном формате. Я считаю, что вы должны использовать пользовательский формат, а затем pg_restore, чтобы остановить это. Поскольку я использую psql для восстановления и pg_dump в обычном формате, я просто удаляю команды, которые не хочу из файла sql, после его создания автоматически как часть процесса Java, который я создаю, и я могу обойти это. Я оставляю вопрос, если кто-то найдет способ сделать это.