Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. # use pg_dump and pg_restore to migrate some databases from another server
  2.  
  3. psql $DBNAME << EOF
  4. DO $$
  5. DECLARE
  6. myschema RECORD;
  7. myview RECORD;
  8. myfunc RECORD;
  9. myseq RECORD;
  10. BEGIN
  11.  
  12. FOR myschema IN (SELECT schema_name FROM information_schema.schemata WHERE schema_name NOT LIKE 'pg_%' AND schema_name <> 'information_schema')
  13. LOOP
  14.  
  15. -- Drop all views
  16. FOR myview IN (SELECT viewname FROM pg_catalog.pg_views WHERE schemaname=myschema.schema_name)
  17. LOOP
  18. EXECUTE 'DROP VIEW ' || quote_ident(myschema.schema_name) || '.' || quote_ident(myview.viewname) || ';';
  19. END LOOP;
  20.  
  21. -- Drop all sequences
  22. FOR myseq IN (SELECT sequence_name FROM information_schema.sequences WHERE sequence_schema=myschema.schema_name)
  23. LOOP
  24. EXECUTE 'DROP SEQUENCE ' || quote_ident(myschema.schema_name) || '.' || quote_ident(myseq.sequence_name) || ';';
  25. END LOOP;
  26.  
  27. -- Drop all functions
  28. FOR myfunc IN (SELECT routine_name FROM information_schema.routines WHERE routine_type='FUNCTION' AND specific_schema=myschema.schema_name )
  29. LOOP
  30. EXECUTE 'DROP FUNCTION ' || quote_ident(myschema.schema_name) || '.' || quote_ident(myfunc.routine_name) || ';';
  31. END LOOP;
  32.  
  33. END LOOP;
  34.  
  35. END;
  36. $$ LANGUAGE plpgsql;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement