-- test some errors CREATE EXTENSION test_ext1; ERROR: required extension "test_ext2" is not installed HINT: Use CREATE EXTENSION ... CASCADE to install required extensions too. CREATE EXTENSION test_ext1 SCHEMA test_ext1; ERROR: schema "test_ext1" does not exist CREATE EXTENSION test_ext1 SCHEMA test_ext; ERROR: schema "test_ext" does not exist CREATE SCHEMA test_ext; CREATE EXTENSION test_ext1 SCHEMA test_ext; ERROR: extension "test_ext1" must be installed in schema "test_ext1" -- finally success CREATE EXTENSION test_ext1 SCHEMA test_ext CASCADE; NOTICE: installing required extension "test_ext2" NOTICE: installing required extension "test_ext3" NOTICE: installing required extension "test_ext5" NOTICE: installing required extension "test_ext4" SELECT extname, nspname, extversion, extrelocatable FROM pg_extension e, pg_namespace n WHERE extname LIKE 'test_ext%' AND e.extnamespace = n.oid ORDER BY 1; extname | nspname | extversion | extrelocatable -----------+-----------+------------+---------------- test_ext1 | test_ext1 | 1.0 | f test_ext2 | test_ext | 1.0 | t test_ext3 | test_ext | 1.0 | t test_ext4 | test_ext | 1.0 | t test_ext5 | test_ext | 1.0 | t (5 rows) CREATE EXTENSION test_ext_cyclic1 CASCADE; NOTICE: installing required extension "test_ext_cyclic2" ERROR: cyclic dependency detected between extensions "test_ext_cyclic1" and "test_ext_cyclic2" DROP SCHEMA test_ext CASCADE; NOTICE: drop cascades to 5 other objects DETAIL: drop cascades to extension test_ext3 drop cascades to extension test_ext5 drop cascades to extension test_ext2 drop cascades to extension test_ext4 drop cascades to extension test_ext1 CREATE EXTENSION test_ext6; DROP EXTENSION test_ext6; CREATE EXTENSION test_ext6; -- test dropping of member tables that own extensions: -- this table will be absorbed into test_ext7 create table old_table1 (col1 serial primary key); create extension test_ext7; \dx+ test_ext7 Objects in extension "test_ext7" Object Description ------------------------------- sequence ext7_table1_col1_seq sequence ext7_table2_col2_seq sequence old_table1_col1_seq table ext7_table1 table ext7_table2 table old_table1 (6 rows) alter extension test_ext7 update to '2.0'; \dx+ test_ext7 Objects in extension "test_ext7" Object Description ------------------------------- sequence ext7_table2_col2_seq table ext7_table2 (2 rows)