Szymon Guz, 07.07.2014 11:57:
> For the schema public I want to remove it and create again.
> However that doesn't work, I'm wondering if that's on purpose, or it's a kind of a bug.
>
> I'm using user 'szymon' in my console.
>
> Then I created a user:
>
> create user test password 'test';
>
> and database
>
> create database test owner test;
>
> I logged into the database as the user:
>
> test=# \c test test
> You are now connected to database "test" as user "test".
>
> And the owner of the public schema is not test, however it's an owner of the test database.
>
> test=# \dn
> List of schemas
> Name | Owner
> --------+--------
> public | szymon
> (1 row)
>
> When I try to remove the public schema, then I get:
>
> test=> drop schema public cascade;
> ERROR: must be owner of schema public
I noticed that as well recently.
I think there is not much you can do apart from changing the ownership of the schema after creating the database.
However: I use "drop owned by test" to be better suited to make a clean database for testing purposes.
This also means any extension that was installed into the database (and which is not owned by the test user) will
survivethis as well.