Estoy intentando crear una tabla con Postgis. Lo hago por esta página . Pero cuando importo el archivo postgis.sql, obtengo muchos errores:
ERROR: type "geometry" does not exist
¿Alguien sabe cómo puedo solucionarlo?
postgresql
geometry
postgis
yetty
fuente
fuente
postgis
. Necesitaba ejecutar el siguiente comando, y todo volvió a estar bien:DO $$ BEGIN EXECUTE 'alter database '||current_database()||' set search_path = "$user", public, lookup, postgis'; END; $$ ;
Si se carga Postgis-Extension, entonces su SQL tal vez no encuentre el tipo de geometría debido a que falta la ruta de búsqueda al esquema público.
Tratar
SET search_path = ..., público;
en la primera línea de su scsript. (reemplace ... con las otras rutas de búsqueda requeridas)
fuente
Puedes hacerlo desde la terminal:
fuente
Para que psql se detenga en el primer error, use
-v ON_ERROR_STOP=1
(que está desactivado de forma predeterminada , por lo que ve muchos errores). Por ejemplo:El error real es algo así como "no se pudo cargar la biblioteca X", que puede variar según su situación. Como conjetura, pruebe este comando antes de instalar el script sql:
(es posible que deba usar el prefijo
sudo
según su sistema). Este comando actualiza las rutas de todas las bibliotecas del sistema, como GEOS.fuente
Debe habilitar la extensión en su base de datos.
psql my_database -c "CREATE EXTENSION postgis;"
fuente
Este error también puede ocurrir si intenta utilizar tipos postgis en otro esquema en lugar de
public
.Si está creando su propio esquema, utilizando postgis 2.3 o superior y encuentra este error, haga lo siguiente como se indica aquí :
Luego puede proceder a utilizar las funciones de postgis.
fuente
También debe asegurarse de que el usuario con el que está intentando usar la extensión postgis tenga acceso al esquema donde se configura postgis (que en los tutoriales que leí se llama 'postgis').
Acabo de tener este error y se solucionó porque solo le había dado acceso a la base de datos a un nuevo usuario. En la base de datos que había creado, ejecuté:
Y esto resolvió este error
fuente
Las respuestas aquí pueden resolver su problema, sin embargo, si ya tiene habilitado postgis en su base de datos, el problema puede ser que esté intentando restaurar una tabla postgis (con una columna de geometría) en un esquema que no sea donde su extensión postgis está habilitada. En pgAdmin puede hacer clic en la extensión postgis y ver qué esquema se especifica. Si está intentando restaurar una tabla con columna de geometría en un esquema diferente, es posible que obtenga este error.
Resolví esto modificando mi extensión de postgis; sin embargo, no estoy seguro de si esa era necesariamente la mejor manera de hacerlo. Todo lo que sé es que me permitió restaurar la mesa.
fuente
O...
en su programa Python, usando un cursor actual de psycopg2.
fuente
Primero asegúrese de tener (que coincida con la versión de pg: psql -V) postgis instalado:
Justo antes de la creación de tablas, agregue:
fuente