18 lines
1013 B
SQL
18 lines
1013 B
SQL
-- Очистка dev-базы: удаляет все таблицы и перечисления схемы public.
|
|||
|
|
-- Нужна, когда push схемы в dev требует ответа на вопросы (переименования, удаления):
|
||
|
|
-- без терминала его некому дать. Потом — перезапуск dev-сервера и `pnpm seed`.
|
||
|
|
SET client_min_messages = warning;
|
||
|
|
DO $$
|
||
|
|
DECLARE r record;
|
||
|
|
BEGIN
|
||
|
|
IF current_database() <> 'veilix_dev' THEN
|
||
|
|
RAISE EXCEPTION 'reset-dev-db: only for veilix_dev, connected to %', current_database();
|
||
|
|
END IF;
|
||
|
|
FOR r IN SELECT tablename FROM pg_tables WHERE schemaname = 'public' LOOP
|
||
|
|
EXECUTE format('DROP TABLE IF EXISTS public.%I CASCADE', r.tablename);
|
||
|
|
END LOOP;
|
||
|
|
FOR r IN SELECT t.typname FROM pg_type t JOIN pg_namespace n ON n.oid = t.typnamespace
|
||
|
|
WHERE n.nspname = 'public' AND t.typtype = 'e' LOOP
|
||
|
|
EXECUTE format('DROP TYPE IF EXISTS public.%I CASCADE', r.typname);
|
||
|
|
END LOOP;
|
||
|
|
END $$;
|