SQL da nuvem do Google: erro durante a importação do despejo do Postgresql com extensões

2

Estou tentando importar o dump com extensões, excerto do SQL:

CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
CREATE EXTENSION IF NOT EXISTS hstore WITH SCHEMA public;
COMMENT ON EXTENSION hstore IS 'data type for storing sets of (key, value) pairs';

A importação (por meio da IU do Gcloud SQL) falha com SET SET SET SET SET SET CREATE EXTENSION ERROR: must be owner of extension plpgsql .

Esse é um erro compreensível (o usuário do serviço GCloud não tem as permissões), mas não ajuda. Não consigo controlar o processo de restauração se acionado pela interface do usuário e definir as propriedades manualmente, o Google Cloud SQL não permite atribuir permissões de superusuário às funções (e isso não é uma boa maneira de lidar com isso).

Qual é o melhor curso de ação em tal situação?

    
por Олексій Донога 21.07.2017 / 18:43

1 resposta

1

Até que ninguém respondeu, então eu vou dizer como eu superei isso.

  1. Conecte-se à sua instância como usuário do postgres, conecte-se ao DB do template1 e instale as extensões necessárias (se estiverem no lista de arquivos suportados ).

  2. Elimine e recrie seu banco de dados da interface do usuário do Cloud SQL. Talvez manual também funcione, mas decidi não testar. A interface do usuário informa que o novo banco de dados será criado usando template1.

  3. Modifique seu despejo e comente qualquer criação de extensão.
  4. Importe pela interface do usuário e espere que funcione.

No meu caso, havia apenas extensões plpgsql e hstore, então não há problema.

    
por 25.07.2017 / 18:39