Recientemente, creé una base de datos PostGIS 2.0.3 en un servidor de base de datos PostgreSQL 9.1 usando pgAdmin. La extensión "PostGIS" se encontró instalada en "Extensiones". Todas las funciones espaciales se agregaron al esquema "público". Esta bien.
Ahora quiero almacenar todos mis datos en un nuevo esquema llamado "gc". Sin embargo, ¿cómo puedo hacer que todas las funciones espaciales estén instaladas en ese esquema "gc"? No hay una sola función en el esquema. Sin embargo, cuando intenté importar / crear una nueva clase de entidad de ESRI ArcCatalog 10.1 a este esquema, ¡funcionó! La clase de entidad podría importarse y mostrarse en QGIS.
¿Alguien podría darme algún consejo o idea al respecto?
Soy nuevo en PostgreSQL y PostGIS.
postgis
postgresql
postgis-2.0
alextc
fuente
fuente
Respuestas:
Aquí hay ejemplos de comandos para instalar la extensión PostGIS en un
gc
esquema:Aquí hay ejemplos de comandos para mover PostGIS y sus objetos a un nuevo esquema para la versión 2.4.4 de PostGIS en caso de que ya lo haya instalado:
Esto no es estrictamente necesario; solo útil:
fuente
Kenny Evitt ya explicó las cosas más importantes. Sin embargo, aquí hay información adicional:
Postgresql tiene bases de datos, espacios de tablas y esquemas, y es imposible realizar uniones de una base de datos a otra, ya que están estrictamente separadas. Una base de datos puede tener más de un esquema, y es posible unir algo de un esquema a otro. Para más información, mira los documentos:
Otra posibilidad para cargar PostGIS en su esquema gc sería la siguiente:
No soy un experto en Arc Catalog ni en pgadmin, pero supongo que sucedió una de las siguientes tres posibilidades:
En psql, puede hacer esto escribiendo:
Si ve esto, PostGIS se ha instalado como una extensión. La tercera posibilidad sería que ArcCatalog haga algo como esto:
En este caso, también tienes suerte. Pero tal vez, ArcCatalog hace algo más sofisticado al final ...
fuente
Aquí está tu solución:
Si ya instaló la extensión postGIS en su esquema público y desea moverse en gc, escriba el siguiente código:
fuente