数据库从 AWS postgres-9.6.6 数据库转储和恢复到 Google 云 SQL(还有 postgres-9.6)

Database dump and restore from AWS postgres-9.6.6 database to Google Cloud SQL (also postgres-9.6)

我已经按照 Exporting data from an externally-managed database server:

中的描述转储了我的数据库
pg_dump -U [USERNAME] --format=plain --no-owner \
--no-acl  [DATABASE_NAME] \
    | sed -E 's/(DROP|CREATE|COMMENT ON) EXTENSION/--  EXTENSION/g' > [SQL_FILE].sql

我从中转储的数据库是 运行 PostgreSQL 9.6.6。 Google 云 SQL 也使用 9.6.

然后我将 db-dump 复制到存储桶并尝试将其恢复为 described here

从 cloud.google.com 的 Web 界面中生成此错误消息:

知道我该如何解决这个问题吗?

您缺少 pgcrypto 扩展。 sed post-processing 注释掉 SQL 转储文件中的所有扩展语句。您需要取消评论必要的和云 sql 支持的扩展,如 pgcrypto,只留下不支持的评论。您可以在 https://cloud.google.com/sql/docs/postgres/extensions.

找到有关支持者扩展的信息