The following steps show how to upgrade Cloud SQL PostgreSQL to a newer version using Google Cloud DMS. A few interesting observations that were made are:
- You can write to the destination database, but the cloudsqlexternalsync user owns all objects. You must create users/roles and manually run grant statements to match the source.
- During the promotion, the target database restarts.
- The drop/create/grant statements ran during promotion [1] are here.
- This screenshot shows grants after promotion [2]. They don't match the source instance. Here is a good blog post that talks about this [3].
- In optimal settings, DMS creates two subscriptions per database (max of 10 subscriptions). The more subscriptions you have, the longer it can take to clean up during the promotion.
- This screenshot [4] shows that I was able to insert data into the destination database after applying appropriate grants while the migration job was in the CDC phase.
[1]