Как удалить все схемы в postgres
Я использую django-tenants
, и для некоторых тестов мне нужно удалить все схемы сразу, поэтому мне интересно, как я могу удалить все схемы одним предложением/скриптом из postgresql shell, потому что удаление по одной не масштабируется.
Для удаления всех схем вы должны использовать динамический SQL. Имена схем можно получить из таблиц системы статистики (пример: information_schema). Пример запроса:
do
$body$
declare
f_rec record;
begin
for f_rec in
SELECT schema_name::text
FROM information_schema.schemata
where schema_name <> 'public'
loop
execute 'DROP SCHEMA ' || f_rec.schema_name || ' CASCADE';
end loop;
end;
$body$
language 'plpgsql';