Imagine o seguinte cenário:
Você organizou a estrutura da sua conta GCP para trabalhar com projetos distintos;
Fez as TAGs para poder ter os valores corretos por projeto e saber exatamente quanto cada um custa;
Agora precisa copiar uns bancos que estão em um servidor CloudSQL de um projeto para outro projeto, fácil certo? Até descobrir que a GCP não faz de forma fácil.
Mas tem outras formas, da pra gerar um backup do banco, mandar para o bucket, copiar o arquivo de um bucket para outro e depois restaurar, ou usar um servidor intermediário, faz a mesma coisa mas manda o arquivo para esse servidor e restaurado no outro, claro que dá, além de tomar tempo e mesmo que você consiga fazer em paralelo, quantos bancos consegue fazer? o servidor aguenta? o GCP tem limite de IO e operações de Leitura/Gravação no CloudSQL, além de inevitavelmente ser lento.
Eles tem a opção de restaurar um backup da instância em cima de outra instância no mesmo projeto, então deveria ter a opção de fazer a mesma coisa em projetos distintos, no final das contas eles tem, mas tem que ser feito por meio de requisição de API.
No link abaixo montei um python que vai carregar suas credenciais, listar os projetos que você tem direito de acesso, lista as instâncias, backups das instâncias e ai te ajuda a restaurar esse backup em uma outra instância em qualquer outro CloudSQL de qualquer outro projeto.
https://github.com/bigleka/gcp/blob/main/gcp_restore_cloud_database_in_another_project.py

O app é bem simples:
- Clique em “Carregar Credenciais GCP”;
- localize o arquivo json gerado pelo comando.
- gcloud auth application-default login
- ele vai carregar a lista dos projetos que você tem acesso nas duas listas de “Origem” e “Destino”;
- Clicando no projeto ele vai listar as instâncias na combobox abaixo da lista dos projetos.
- Clicando na instância de banco ele vai listar os backups disponíveis, selecione o backup que você quer restaurar na outra instância.
- Agora faça a mesma coisa no “Destino”, selecione o projeto e a instância.
- ELE VAI SOBRESCREVER a instância de destino, apagando e restaurando o backup por cima da instância do destino.
- e clique em “Restaurar”.
Como o processo é assíncrono, caso você queira acompanhar o status da restauração, vá para o console da GCP e acompanhe de lá.

