Estou tentando criar uma tabela com Postgis. Eu faço isso por esta página . Mas quando eu importo o arquivo postgis.sql, obtenho muitos erros:
ERROR: type "geometry" does not exist
Alguém sabe como posso consertar?
postgresql
geometry
postgis
yetty
fonte
fonte
postgis
. Eu precisava executar o seguinte comando e tudo estava bem novamente:DO $$ BEGIN EXECUTE 'alter database '||current_database()||' set search_path = "$user", public, lookup, postgis'; END; $$ ;
Se a extensão Postgis for carregada, então seu SQL talvez não encontre o tipo de geometria por causa da falta do caminho de pesquisa para o esquema público.
Experimentar
SET search_path = ..., public;
na primeira linha do seu scsript. (substitua ... pelos outros caminhos de pesquisa necessários)
fonte
Você pode fazer isso no terminal:
fonte
Para fazer o psql parar no primeiro erro, use
-v ON_ERROR_STOP=1
(que está desativado por padrão , e é por isso que você vê muitos erros). Por exemplo:O erro real é algo como "não foi possível carregar a biblioteca X", que pode variar em sua situação. Como uma suposição, tente este comando antes de instalar o script sql:
(pode ser necessário prefixar com,
sudo
dependendo do seu sistema). Este comando atualiza os caminhos para todas as bibliotecas do sistema, como GEOS.fonte
Você deve habilitar a extensão em seu banco de dados.
psql my_database -c "CREATE EXTENSION postgis;"
fonte
Este erro também pode ocorrer se você tentar usar tipos postgis em outro esquema em vez de
public
.Se você estiver criando seu próprio esquema, usando o postgis 2.3 ou superior e encontrar este erro, faça o seguinte conforme indicado aqui :
Em seguida, você pode continuar a usar as funcionalidades pós-gis.
fonte
Você também precisa garantir que o usuário com o qual está tentando usar a extensão postgis tenha acesso ao esquema onde o postgis está configurado (que nos tutoriais que li é chamado de 'postgis').
Acabei de ter esse erro, que foi resolvido porque eu só tinha dado acesso ao banco de dados a um novo usuário. No banco de dados que criei, executei:
E isso resolveu esse erro
fonte
As respostas aqui podem resolver seu problema, no entanto, se você já tem postgis habilitado em seu banco de dados, o problema pode ser que você está tentando restaurar uma tabela postgis (com uma coluna geométrica) em um esquema diferente de onde sua extensão postgis está habilitada. No pgAdmin você pode clicar na extensão postgis e ver qual esquema está especificado. Se você estiver tentando restaurar uma tabela com coluna geométrica em um esquema diferente, poderá obter este erro.
Resolvi isso alterando minha extensão postgis - no entanto, não tenho certeza se essa era necessariamente a melhor maneira de fazer isso. Tudo o que sei é que me permitiu restaurar a mesa.
fonte
Ou...
em seu programa python, usando um cursor atual de psycopg2.
fonte
Primeiro, certifique-se de ter (compatível com a versão pg: psql -V) o postgis instalado:
Antes da criação das tabelas, adicione:
fonte