Skip to content

Extensões

Todo banco criado pelo GoShip já vem com a extensão vector (pgvector) ligada. As demais extensões do PostgreSQL ligam sob demanda, pelo painel ou pela CLI, sem pedir nada ao suporte: o GoShip roda o CREATE EXTENSION com a credencial de administrador do servidor, que o usuário do seu app não tem.

Extensões disponíveis

A lista é fixa e vale para todo servidor — o do GoShip e os que você cria no seu próprio Google Cloud.

ExtensãoPara quê
postgisGeometria e geografia: pontos, polígonos, distâncias, índices espaciais
postgis_topologyTopologia do PostGIS (liga o postgis junto)
pg_trgmBusca por similaridade de texto e índices para LIKE '%…%'
citextTipo de texto que ignora maiúsculas e minúsculas
hstorePares chave-valor numa coluna
pgcryptoHash e criptografia dentro do banco (gen_random_uuid, crypt)
uuid-osspGeradores de UUID (uuid_generate_v4)
btree_gistÍndices GiST para tipos comuns; restrições de exclusão
btree_ginÍndices GIN para tipos comuns
unaccentRemove acentos para buscar “São Paulo” com “sao paulo”
fuzzystrmatchSoundex, Levenshtein e outras comparações aproximadas
ltreeCaminhos hierárquicos (a.b.c)
tablefunccrosstab e outras funções de tabela
intarrayFunções e índices para arrays de inteiros
cubePontos e cubos n-dimensionais
earthdistanceDistância entre coordenadas na Terra (liga o cube junto)

Extensões de servidor inteiro (pg_cron, pg_stat_statements) e as que saem do banco (postgres_fdw, dblink) não entram na lista.

Ligar pelo painel

Na página do banco, o card Extensions mostra o que está ligado e, para admins do projeto, um seletor com o que ainda pode ser ligado. Escolha e clique em Enable.

Em servidores pequenos (o db-f1-micro, por exemplo) o PostGIS pode levar cerca de um minuto para instalar. O painel avisa Enabling…; recarregue a página e a extensão aparece como ligada quando terminar.

Ligar pela CLI

goship db extensions meu-banco                 # ligadas, instalando, disponíveis
goship db extension-add meu-banco postgis      # liga (e espera, se demorar)
goship db extension-rm meu-banco postgis       # desliga

extension-add espera até três minutos por uma instalação lenta. Se ainda não terminou, ele avisa e você confere depois com goship db extensions.

Desligar

extension-rm roda um DROP EXTENSION sem CASCADE: se alguma tabela ou coluna ainda usa a extensão, o comando falha e nada é apagado. Apague as tabelas primeiro (ou troque o tipo das colunas) e tente de novo. Vale também para dependências: cube só sai depois de earthdistance.

No seu Google Cloud

Bancos num servidor no seu Google Cloud ligam as mesmas extensões, com os mesmos comandos. O Cloud SQL já traz todas instaladas no servidor; o que muda é só o tempo de instalação em instâncias de núcleo compartilhado.

Espaço

Uma extensão ocupa espaço do plano como qualquer tabela. O PostGIS cria a tabela spatial_ref_sys, com cerca de 8 MB — conta nos 100 MB do db-micro.

Limites

  • A versão é a padrão do servidor; não dá para escolher outra nem atualizar.
  • Os objetos da extensão pertencem ao GoShip, não ao usuário do app: as funções, tipos e índices funcionam normalmente, mas spatial_ref_sys é somente leitura (não dá para inserir SRIDs próprios) e ALTER EXTENSION não é permitido.
  • Nada de pg_cron, postgres_fdw ou extensões fora da lista.