我正在尝试将一堆数据库从AWS RDS Postresql服务器迁移到GCP Cloud SQL。
由于两者都是postgresql引擎,我认为从aws中获取pgdump并在gcp中导入将是一个简单的解决方案。
然而,当导入到云sql时,我很惊讶地发现失败了,并抱怨缺少一些角色。
以下是尝试的步骤
从AWS RDS中转储数据库
然后我尝试使用以下命令将其导入到GCP Cloud sql。
从AWS RDS中转储数据库
pg_dump -h <connection_endpoint> -U root -f db_dump.sql <db_name>
然后我尝试使用以下命令将其导入到GCP Cloud sql。
instance-1:~$ PGPASSWORD=<passwprd> psql --host=<host_name> --port=5432 --username=postgres --dbname=<db_name> < db_dump.sql
SET
SET
SET
SET
SET
set_config
------------
(1 row)
SET
SET
SET
CREATE SCHEMA
ERROR: must be member of role "rdsadmin"
CREATE SCHEMA
ERROR: must be member of role "root"
CREATE SCHEMA
ERROR: must be member of role "root"
CREATE SCHEMA
ERROR: must be member of role "root"
CREATE SCHEMA
ERROR: must be member of role "root"
CREATE EXTENSION
ERROR: must be owner of extension plpgsql
CREATE EXTENSION
COMMENT
SET
SET
CREATE TABLE...
正如您所看到的,rdsadmin和root角色缺失。如何确保这些缺失的角色在GCP Cloud sql中具有正确的设置,因为即使在cloud sql中创建了同名的角色,也无法成功?是否有任何解决方案?