SowerPHP

Framework PHP hecho en Chile

Herramientas de usuario

Herramientas del sitio


mvc:model:database:postgresql:esquemas

PostgreSQL: múltiples esquemas

Por defecto PostgreSQL incluye el esquema public donde todos los objetos son colocados.

Supongamos que se requiere utilizar una misma base de datos para diferentes tareas. En este caso se pueden definir múltiples esquemas, cada esquema contendrá sus propios objetos, donde estos se pueden repetir entre los esquemas.

Crear un nuevo esquema:

CREATE SCHEMA miesquema;

Para crear/utilizar un esquema se antepone el nombre del esquema al objeto separando con un punto:

miesquema.objeto

Por ejemplo, para crear una tabla se realizará con:

CREATE TABLE miesquema.mitabla (...);

Luego para poder utilizar el esquema se debe especificar en la configuración de la base de datos la opción sche:

\sowerphp\core\Configure::write('database.default', [
    'type' => 'PostgreSQL',
    'name' => 'database',
    'user' => 'usuario',
    'pass' => 'clave',
    'sche' => 'miesquema'
]);

Si estamos trabajando en psql y queremos fijar un esquema para nuestros objetos utilizamos:

SET search_path TO miesquema;

Lo anterior dejará inaccesible public a menos que se haga de forma explícita, otra forma sería especificar los dos, donde los de la izquierda tienen preferencia en la búsqueda sobre los de la derecha:

SET search_path TO miesquema,public;
mvc/model/database/postgresql/esquemas.txt · Última modificación: 2016/04/14 17:40 por delaf