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


8

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

ERROR:  must be owner of schema public

事实证明,该模式不是由admin(组成用户提供psql访问)所拥有,而是由一个名为的用户所拥有focker

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

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

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

Answers:


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`

...

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


3
+1。只是为了psql postgres -U focker
ypercubeᵀᴹ
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.