Postgres:在 flyway 创建的模式名称中转义双引号

Postgres: Escape double quote in schema name created by flyway

上下文:一个 java 应用程序,如果架构为空,则使用 flyway 执行数据库脚本,通过 jdbc 连接。

由于我的一些错误,我忘记将应用程序用户添加为 public 架构所有者。这导致 flyway 创建了一个具有有趣名称的模式: "$user", public 。是的,像这样。我更改了 public 所有者,重新启动应用程序,一切顺利,我的表已创建。

我只是不知道如何清理架构,以及转义名称中的引号和逗号。任何的想法 ?我是 postgres 的新手。

  \dn
  schemas list
        name       |  owner
   "$user", public | myuser
   public          | myuser
 (2 lines)

要删除该架构,您需要复制引号 - 就像在字符串常量中使用单引号一样:

drop schema """$user"", public" cascade;