谁是“focker”,为什么他拥有我的架构?

8 postgresql

我在 Compose.io 中有一个 Postgres DB 部署,我正在为我的应用程序使用标准的“compose”数据库。我想清除当前的数据库内容,以便可以使用新模式重新创建数据库。我已经读过,最好的方法是使用“删除模式公共级联”,但是当我尝试在我的数据库上执行此操作时,我得到了

ERROR:  must be owner of schema public
Run Code Online (Sandbox Code Playgroud)

事实证明,模式不是由admin(撰写提供 psql 访问的用户)拥有,而是由名为focker.

compose=> \dn
 List of schemas
  Name  | Owner  
--------+--------
 public | focker
(1 row)
Run Code Online (Sandbox Code Playgroud)

我尝试更改架构所有者,但失败并出现与上述相同的错误。

为什么我的数据库是这样设置的?有什么方法可以更改它以便管理员用户可以清除数据库吗?

小智 8

不幸的是,我只能回答标题中的问题。

以下是Compose.io一篇文章的摘录,可能会对您的问题有所了解:

由于 LXC { Linux 容器} 没有很好的命令行 API,Compose 开发了自己的内部工具。当 Docker 开始作为 LXC 的一个不错的命令行时,Kurt 指出 Compose 的工具现在被命名为 Focker。Focker是捆绑所有工具的地方,与 Docker 专注于打包不同,它专注于资源分配和管理。然后容器实例通过Open vSwitch连接,这允许每个客户为他们的数据库拥有自己的私有 VLAN。

底线 - “focker”代表 Compose.io 的命令行 API“用户”。


另一篇文章中,我们可以看到以下内容:

[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`
Run Code Online (Sandbox Code Playgroud)

...

我最好的选择是尝试: psql postgres -U focker

  • +1。仅用于`psql postgres` **`-U focker`** (3认同)