¿Usando un esquema que no sea público en PostGIS?

18

Actualmente estoy configurando una instalación nueva de PostGIS 2.0.2 y PostgreSQL 9.1.6 en Ubuntu. Recientemente he encontrado some information que indica que usar el esquema público para almacenar todos los datos no es una buena idea.

Por este motivo, he configurado un esquema llamado data y me he convertido en el propietario, pero ¿es una buena idea?

Mis preocupaciones son:

  1. Además de establecer el propietario, es posible que deba prestar atención a las cosas en la pestaña Privilegios al crear este nuevo esquema (a través de pgAdmin III);
  2. Es posible que no obtenga los mismos beneficios al almacenar mis datos en el esquema público y volcar todos los datos en un esquema separado antes de realizar una copia de seguridad / restauración (esto ahorraría algunas pulsaciones de teclas al usar ogr2ogr); y
  3. Es posible que tenga problemas al no tener las tablas y las vistas predeterminadas de PostGIS en mi nuevo esquema de datos (están en el esquema público dentro de la misma base de datos).
pregunta Paul 05.12.2012 - 00:47

5 respuestas

5

Esto se trata ahora en el sitio oficial en una página titulada Mueve la extensión de PostGIS a una diferente esquema . El método correcto es instalar la extensión en public . Esta es la única opción. La extensión ya no admite la reubicación. Lo siguiente es ejecutar los siguientes comandos, (copiados del sitio),

UPDATE pg_extension 
  SET extrelocatable = TRUE 
    WHERE extname = 'postgis';

ALTER EXTENSION postgis 
  SET SCHEMA postgis;
    
respondido por el Evan Carroll 06.02.2018 - 21:54
19

Cuando habilita espacialmente una base de datos PostGIS, las funciones relevantes, la tabla SRS y las vistas se colocan en el esquema público, según lo indique. Eso no significa que todas o cualquiera de sus propias tablas espaciales deban estar en el mismo esquema público. PostGIS seguirá funcionando en todos los datos espaciales en los "nuevos" esquemas.

De hecho, generalmente coloco mis tablas específicas de la aplicación en un esquema separado. De esa manera, si necesita realizar una actualización importante de la versión a PostGIS, puede mantener las copias de seguridad y restauraciones de la tabla específica de la aplicación como un procedimiento separado del que reemplaza las herramientas espaciales.

Entonces, creo que lo estás haciendo bien. Finalmente, en caso de que aún no lo haya hecho, es una buena idea agregar el nuevo esquema a la ruta de búsqueda:

ALTER DATABASE my_db SET search_path = gc, public;

    
respondido por el Martin F 21.02.2014 - 04:21
12
  1. Una de las posibles estrategias organizativas que puede construir con esquemas es permitir que un usuario se ejecute de forma desenfrenada en un esquema, pero no pueda ensuciar las cosas en otro. Por lo tanto, si desea usar esquemas de esta manera, puede hacerlo en la pestaña de privilegios de pgAdmin. Pero no es necesario que lo hagas, así que si solo quieres mantener los mismos privilegios en múltiples esquemas, está bien.

  2. En función de los artículos a los que se haya vinculado, el problema de mantener todo en público es que cuando se vuelcan los datos, es probable que las tablas del sistema y las relaciones se mezclen con sus datos. Si mueve todos sus datos a un nuevo esquema, no tendrá que preocuparse por eso nunca más.

  3. No hay problema en absoluto. (Para la prueba, tenga en cuenta que no tiene que especificar public.spatial_ref_sys cuando desee buscar en la tabla SRS).

respondido por el L_Holcombe 05.12.2012 - 09:26
6

Una sugerencia adicional (tal vez ya hayas encontrado esto). Es probable que desee agregar el esquema de "datos" a la ruta de búsqueda predeterminada del usuario. Algo como:

ALTER USER <your_user_name> SET search_path=public,data,$USER; 

Con respecto a su punto 2, a veces necesita restaurar cuando ya no tiene acceso a la base de datos original. (Esa es una de las razones de las copias de seguridad ...) por lo que es posible que no tenga la oportunidad de mover sus datos a un esquema separado cuando realmente lo necesite.

    
respondido por el Micha 05.12.2012 - 13:22
1

Usamos el esquema público para el análisis temporal / resultados de la tabla de desarrollo, luego ingresamos en esquemas más organizados (¿carpetas?) para uso permanente.

    
respondido por el DPSSpatial 28.04.2018 - 22:54

Lea otras preguntas en las etiquetas