17 votos

¿Crear una base de datos PostGIS y abrirla en QGIS en Windows?

He intentado seguir los manuales para configurar una base de datos PostGIS a la que puedan acceder los usuarios con QGIS, pero de momento no entiendo lo suficiente como para avanzar

Mi situación; soy un aprendiz responsable de la creación de una base de datos PostGIS para la digitalización de objetos verdes (como los árboles) y la ejecución de consultas - como la vinculación de una lista de calles, con archivos de imágenes, a la tabla de atributos.

Tengo "esqueletos shapefile" (actualmente vacíos sin objetos, sólo el marco de atributos" donde se pegarán/crearán los objetos georreferenciados actuales y futuros (un shapefile diferente para cada tipo)). ¿Confío en que puedo importar esos shapefiles esqueleto a la base de datos?

La situación;

Trabajamos en un edificio independiente con nuestra propia LAN y conexión a Internet con un servidor de copia de seguridad para cada archivo. Así que tenemos acceso a archivos locales y archivos que compartimos a través de una conexión a Internet

La configuración de la base de datos ha sido realizada por un administrador mediante acceso remoto, utilizando los últimos archivos de ejecución .exe de PostGIS y PostgreSQL (postgresql-9.6.2-3-windows-x64 & postgis-bundle-pg96x64-setup-2.3.2-1) para mi máquina de 64 bits. El administrador me proporcionó un archivo de texto con la información de acceso. Los manuales de formación aquí son bastante confusos ya que tratan de Ubuntu.

Estoy atascado porque no sé dónde utilizar los datos de acceso que he anotado. Supongo que tengo que usar pgAdmin.

0 votos

Así es como instalo PostGIS en Windows - en una instalación sencilla get.enterprisedb.com/docs/ entonces QGIS se conectará fácilmente con el nombre de usuario y la contraseña que hayas establecido.

1 votos

Definitivamente aconsejaría instalar pgAdmin 3 para trabajar con su base de datos. Hay un pgAdmin4 ahora, también podría mirar para instalar que al mismo tiempo, ver cuál prefiere.

0 votos

Espera, ¿dónde ir en QGIS entonces, y qué archivos debo instalar en el stackbuilder? Editar nvm: lo encontró ahora tengo que encontrar qué host local y las entradas de servicio que debo hacer.

28voto

Dirk Bruere Puntos 6634

Parece que su administrador ha instalado la base de datos con éxito y le ha proporcionado los detalles que necesitará. Es posible que también hayan configurado PostGIS durante la instalación, pero si no es así, puedes comprobarlo mientras sigues estos pasos.

Primero pida a su administrador que instale pgAdmin esto le permitirá acceder a su base de datos PostgreSQL con una interfaz gráfica.

https://www.pgadmin.org/download/windows.php

Abrir pgAdmin

Si su PostgreSQL ha sido instalado;

  • en su ordenador aparecerá como localhost, debería poder hacer doble clic en 'PostgreSQL (version no.) (localhost:5432)' para conectarse a él.

enter image description here

  • Si se ha instalado en la red, necesitará que su administrador le comunique la dirección del host (si no la tiene ya), entonces tendrá que ir a Archivo > Añadir servidor y rellenar los campos;

enter image description here

Una vez conectado vaya a Edit > New Object > New Database

Dale un nombre. Aparecerá en su lista de servidores.

Haz doble clic para conectarte a él. Compruebe el Extensions para ver si aparece en la lista postgis .

Si no es así;

Abra la ventana SQL haciendo clic en el icono SQL

enter image description here

y escriba

CREATE EXTENSION PostGIS

Pulse "Ejecutar consulta" - este icono enter image description here

Haga clic con el botón derecho del ratón en la base de datos de la lista y desconéctela, y luego vuelva a conectarla. Las extensiones deberían tener ahora postgis que se enumeran.

Podría configurar un nuevo rol de grupo y un rol de inicio de sesión en este punto, parece que debería hacerlo dadas las necesidades de seguridad y sus usuarios en la red.

O si sólo quieres probarlo puedes seguir con el rol por defecto postgres .

Se pueden configurar diferentes grupos para que tengan diferentes permisos, por ejemplo, administrador y usuario. Los inicios de sesión de los usuarios pueden ser configurados y asignados a cualquier grupo que se adapte al nivel de permiso que desea dar al usuario, o puede dar acceso a todas las tablas al administrador, y sólo algunos a los usuarios, etc. Es posible que no necesites un grupo de administradores.

Abra la ventana de SQL y ejecute estas consultas;

CREATE ROLE user_group_name NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
CREATE ROLE admin_group_name NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;

GRANT user_group_name TO admin_group_name

GRANT ALL ON DATABASE database_name TO admin_group_name;

Configure un inicio de sesión de administrador (inicie la sesión como postgres/superusuario)

CREATE ROLE admin_name LOGIN PASSWORD 'their_password' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT admin_group_name TO admin_name;

Configurar un inicio de sesión de usuario (conectado como el postgres/superusuario)

CREATE ROLE user_name LOGIN PASSWORD 'their_password' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT users_group_name TO user_name;

Abra QGIS. Inicie un nuevo proyecto.

Haga clic en el icono "Añadir capa PostGIS" de la barra de herramientas de la izquierda.

enter image description here

Haga clic en "Nueva" conexión, e introduzca los detalles de la conexión como en el caso anterior (si su base de datos es local, el host es sólo localhost ).

En este punto puedes probar la conexión. Si marcas las casillas "Guardar" junto al campo de nombre de usuario y contraseña, se almacenarán tus credenciales en tu perfil para que no tengas que introducirlas cada vez. Depende de tus necesidades de seguridad.

Pulse Ok y cierre la ventana "Añadir tabla PostGIS".

A continuación, vaya a Database > DB Manager > DB Manager (Las versiones recientes de QGIS tienen DB Manager instalado de serie, las versiones anteriores tendrán que instalar el plugin DB Manager)

Seleccione PostGIS. Se mostrará el esquema público por defecto. Parece que debería crear un nuevo esquema en lugar de utilizar el público.

Esquema > Crear esquema - Darle un nombre ( no_spaces_or_use_underscores )

Una vez creado, puede comprobarlo volviendo a pgAdmin, desconectando y volviendo a conectar. El nuevo esquema debería estar ahora allí.

Volver a QGIS DB Manager para cargar un shapefile en una tabla de la base de datos.

Haga clic en la flecha hacia abajo "Importar capa/archivo" y busque el archivo shape que desea importar. Haga clic en el icono `...` para abrir la navegación.

Dar un nombre a la tabla ( again_no_spaces_or_use_underscores )

Seleccione Primary key

Seleccione Geometry Column

Seleccione SRID e introduzca el código CRS

Por ahora deja todo lo demás y OK .

Si se trata de un conjunto de datos de gran tamaño, podría llevar un tiempo, especialmente a través de una conexión de red/internet

De nuevo puedes volver a pgAdmin, pulsar refrescar esta vez, y la nueva tabla aparecerá en Tables .

Si ha configurado funciones de grupo y usuarios, tendrá que conceder acceso al esquema, por ejemplo;

GRANT ALL ON SCHEMA schema_name TO admin_group_name;
GRANT USAGE ON SCHEMA schema_name TO user_group_name;

Volver a QGIS y 'Añadir capa PostGIS'. Esta vez seleccione Conectar. Abra el esquema y resalte la tabla y haga clic en 'Añadir' y se abrirá en su espacio de proyecto.

0 votos

Parece que sí instalaron PQadmin 4, estoy proporcionando la contraseña cuando el programa la pide pero me sale "no se pudo traducir el nombre de host "postgres//*communityname123" a la dirección: Error de servidor desconocido". Entonces, ¿qué debo hacer aquí, tenga en cuenta que estoy trabajando con PQadmin4 y sólo hay un servidor PostGre SQL 9.6. Así que voy a suponer aquí que este es el servidor de PostGre QSL que instalaron, pero pueden hacer algo mal con la configuración de la dirección. Entonces, ¿tengo que informarles aquí o estoy haciendo algo mal? *= sensor.

1 votos

Pruebe con 'localhost' como nombre de host, sólo para descartar eso. Entonces, si no es así, pregunte a su administrador por la ruta de acceso a donde se encuentra postgres en la red, ellos deben ser capaces de darle esto. Probablemente es sólo la sintaxis, o falta algo en la dirección.

0 votos

Gracias eso si funcionó, resulta que se equivocaron al cambiar también el nombre de usuario a superusuario, Postgres y demás. Seguiré el resto de la instrucción a ver si funciona. Gracias martin.

3voto

MughtyWinky Puntos 34

Parece que su proyecto funcionará suficientemente en una instalación portátil de postgres / postgis. Hice esto para mis estudiantes hace un tiempo, para que puedan copiar la carpeta postgresl en una memoria USB y utilizarlo en cada pc de windows:

  1. Descargar postgresql como un archivo zip
  2. Descomprimirlo
  3. Descargar postgis (postgis-bundle-pg96-2.3.1x32.zip o x64), según su sistema
  4. Descomprímelo y cópialo en la carpeta postgresql
  5. Utilice esta explicación para "instalar" Postgres como una versión portátil: http://www.postgresonline.com/journal/archives/172-Starting-PostgreSQL-in-windows-without-install.html
  6. Opcionalmente, cambie pg_hba.conf y añada/anule "host all all 127.0.0.1/32 trust" - esto permite el acceso desde su PC a la base de datos sin comprobar la contraseña, lo que está bien en este caso, pero es un no-go en entornos de producción
  7. Conéctese a la base de datos utilizando pgadmin3
  8. Crea una nueva base de datos y ejecuta "CREATE EXTENSION postgis;"

Ahora deberías poder trabajar con postgesql/postgis y acceder a la db en tu pc. Tenga en cuenta que esta es una solución rápida y sucia, que funciona para fines educativos, pero no en un entorno de producción / red.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X