Google云SQL:使用扩展导入Postgresql转储时出错

我试图导入转储扩展它,从SQL摘录:

CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog; COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language'; CREATE EXTENSION IF NOT EXISTS hstore WITH SCHEMA public; COMMENT ON EXTENSION hstore IS 'data type for storing sets of (key, value) pairs'; 

导入(通过Gcloud SQL UI)失败,出现SET SET SET SET SET SET CREATE EXTENSION ERROR: must be owner of extension plpgsql

这是一个可以理解的错误(GCloud服务用户没有权限),但它没有帮助。 如果由UI触发并手动设置所有权,我无法控制恢复过程,Google云SQL不允许授予angular色超级用户权限(并且这样做不是处理此问题的好方法)。

在这种情况下最好的行动是什么?

只要没有人回答,所以我会告诉我如何克服这一点。

  1. 以postgres用户身份连接到您的实例,连接到template1 DB并安装所需的扩展(如果它们在受支持的列表中 )。

  2. 从Cloud SQL UI中删除并重新创build您的数据库。 也许手动工作,但我决定不testing。 用户界面告诉你,新的数据库将使用template1创build。

  3. 修改您的转储并注释掉任何扩展名创build。
  4. 通过UI导入,并希望它的工作。

在我的情况下,只有plpgsql和hstore扩展,所以没有问题。