我已按照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的网络界面产生以下错误消息:
有什么主意我要解决吗?
答案 0 :(得分:0)
您缺少pgcrypto扩展名。 sed的后处理会注释掉SQL转储文件中的所有扩展语句。您需要取消注释必要的和cloud sql支持的扩展,例如pgcrypto,并仅保留不支持的注释。您可以在https://cloud.google.com/sql/docs/postgres/extensions上找到有关supporee扩展名的信息。