数据库转储和从AWS postgres-9.6.6数据库还原到Google Cloud SQL(也为postgres-9.6)

时间:2018-10-05 13:01:16

标签: postgresql google-cloud-datastore google-cloud-sql

我已按照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/-- \1 EXTENSION/g' > [SQL_FILE].sql

我要转储的数据库正在运行PostgreSQL 9.6.6。 Google Cloud SQL也使用9.6。

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

这会从cloud.google.com的网络界面产生以下错误消息: enter image description here

有什么主意我要解决吗?

1 个答案:

答案 0 :(得分:0)

您缺少pgcrypto扩展名。 sed的后处理会注释掉SQL转储文件中的所有扩展语句。您需要取消注释必要的和cloud sql支持的扩展,例如pgcrypto,并仅保留不支持的注释。您可以在https://cloud.google.com/sql/docs/postgres/extensions上找到有关supporee扩展名的信息。