Postgresql – Who is “focker” and why does he own the schema

postgresql

I have a Postgres DB deployment in Compose.io, and I am using the standard "compose" db for my app. I would like to wipe out the current DB contents so that I can recreate the DB with a new schema. I have read that the best way to do this is with "drop schema public cascade", but when I try to do this on my db I get

ERROR:  must be owner of schema public

It turns out that the schema is not owned by admin (the user that compose provides for psql access), but by a user named focker.

compose=> \dn
 List of schemas
  Name  | Owner  
--------+--------
 public | focker
(1 row)

I tried changing the schema owner but that fails with the same error as above.

Why is my db set up this way? Is there any way I can change it so that the admin user can wipe out a db?

Best Answer

Unfortunately, I can only answer the question in the title.

Here's an excerpt from an article on Compose.io that might shed some light on your question:

As LXC {Linux containers} doesn't have a nice command line API, Compose has developed its own internal tool. As Docker started as a nice command line for LXC, Kurt noted that Compose's tools were now named, tongue firmly in cheek, Focker. Focker is where all the tools are bundled up and, unlike Docker which focuses on packaging, it concentrates on the resource allocation and managment. The container instances are then connected via Open vSwitch which allows each customer to have their own private VLAN for their database.

Bottom line - "focker" represents the command line API "user" of Compose.io.


In yet another article, we can see the following:

[snapshot] more README

This snapshot is meant to be run with the same minor version  
of Postgresql, which is postgres (PostgreSQL) 9.4.5.

To startup a Postgresql environment with this snapshot, run:  
`postgres -D conf`

You can then connect to the db by running: `psql postgres -U focker`

...

My best bet would be trying: psql postgres -U focker

Related Question