23 votos

¿Utilizar otro esquema que no sea público en PostGIS?

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

Por esta razón, he creado un esquema llamado datos y me he hecho el propietario, pero ¿es una buena idea?

Mis preocupaciones son:

  1. Además de establecer el propietario, puede que tenga que prestar atención a las cosas en la pestaña Privilegios al crear este nuevo esquema (a través de pgAdmin III);
  2. Puede que no obtenga los mismos beneficios almacenando mis datos en el esquema público y volcando todos los datos en un esquema separado antes de hacer una copia de seguridad/restauración (esto ahorraría algunas pulsaciones de teclas al utilizar ogr2ogr); y
  3. Puede que tenga problemas por no tener las tablas y vistas PostGIS por defecto en mi nuevo esquema de datos (están en el esquema público dentro de la misma base de datos).

22voto

Cuando se habilita espacialmente una base de datos PostGIS, las funciones relevantes, la tabla SRS y las vistas se colocan en el esquema público, como usted indica. Esto no significa que todas o alguna de sus propias tablas espaciales tengan que estar en el mismo esquema público. PostGIS seguirá funcionando con todos los datos espaciales de los "nuevos" esquemas.

De hecho, suelo colocar las tablas específicas de mi aplicación en un esquema aparte. De ese modo, si necesita realizar una actualización importante de la versión de PostGIS, puede mantener las copias de seguridad y las restauraciones de las tablas específicas de la aplicación como un procedimiento independiente del que sustituye a las herramientas espaciales.

Así que creo que lo estás haciendo bien. Por último, en caso de que aún no lo hayas hecho, es una buena idea añadir el nuevo esquema a la ruta de búsqueda:

ALTER DATABASE my_db SET search_path = gc, public;

13voto

MikeJ Puntos 6577
  1. Una de las posibles estrategias organizativas que puedes construir con los esquemas es permitir que un usuario se desenvuelva a sus anchas en un esquema, pero que no pueda ensuciar las cosas en otro. Así que si quieres usar esquemas de esta manera, puedes hacerlo en la pestaña de privilegios de pgAdmin. Pero no es necesario que lo hagas, así que si sólo quieres mantener los mismos privilegios a través de múltiples esquemas, está bien.

  2. Basándonos en los artículos que has enlazado, el problema de mantener todo en público es que cuando vuelcas los datos, es probable que las tablas del sistema y las relaciones se mezclen con tus datos. Si mueves todos tus datos a un nuevo esquema, no tienes que preocuparte por eso nunca más.

  3. Sin ningún problema. (Como prueba, fíjate en que no tienes que especificar public.spatial_ref_sys cuando quieras buscar en la tabla SRS).

11voto

jlehenbauer Puntos 7749

Esto se aborda ahora en el sitio oficial en una página titulada Mover la extensión PostGIS a un esquema diferente . El método correcto es instalar la extensión en public . Esta es la única opción. La extensión ya no soporta 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;

6voto

GriffinHeart Puntos 187

Un consejo adicional (tal vez ya lo hayas encontrado). Probablemente querrás añadir el esquema "data" al search_path por defecto del usuario. Algo como

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

Respecto a tu punto 2, a veces es necesario restaurar cuando ya no tienes acceso a la BD original. (Esa es una de las razones de las copias de seguridad...) así que puede que no tengas la oportunidad de mover tus datos a un esquema separado cuando realmente lo necesites.

1voto

mapBaker Puntos 5348

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

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