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ão | Para quê |
|---|---|
postgis | Geometria e geografia: pontos, polígonos, distâncias, índices espaciais |
postgis_topology | Topologia do PostGIS (liga o postgis junto) |
pg_trgm | Busca por similaridade de texto e índices para LIKE '%…%' |
citext | Tipo de texto que ignora maiúsculas e minúsculas |
hstore | Pares chave-valor numa coluna |
pgcrypto | Hash e criptografia dentro do banco (gen_random_uuid, crypt) |
uuid-ossp | Geradores de UUID (uuid_generate_v4) |
btree_gist | Índices GiST para tipos comuns; restrições de exclusão |
btree_gin | Índices GIN para tipos comuns |
unaccent | Remove acentos para buscar “São Paulo” com “sao paulo” |
fuzzystrmatch | Soundex, Levenshtein e outras comparações aproximadas |
ltree | Caminhos hierárquicos (a.b.c) |
tablefunc | crosstab e outras funções de tabela |
intarray | Funções e índices para arrays de inteiros |
cube | Pontos e cubos n-dimensionais |
earthdistance | Distâ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 # desligaextension-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) eALTER EXTENSIONnão é permitido. - Nada de
pg_cron,postgres_fdwou extensões fora da lista.