Este post ha sido leído 5217 veces!

 

 

Una pregunta que suelen hacerme, es, ¿cómo ejecuto multiples instancias de openerp en un mismo sistema?

Realmente no es complicado, simplemente debemos entender cómo funciona la arquitectura de openerp (MVC – Modelo Vista Controlador).

Básicamente tenemos una serie de entidades conectadas entre sí, mediante protocolos y puertos.

Un ejemplo es cuando nos conectamos con un cliente GTK de OpenERP al servidor de OpenERP, y para ello utilizamos el protocolo NET-RPC o XML-RPC y un puerto como pueda ser el 8070.

A continuación veremos una aproximación de esto que comentamos.

En nuestro caso, las entidades que forman nuestro sistema de gestión son 3:

  1. PostgreSQL, que es el gestor de bases de datos, el que realmente almacena la información. Es el Modelo
  2. OpenERP Server, el Controlador, que gestiona las peticiones de datos entre el modelo y los clientes (que como imaginas son la vista).
  3. Clientes varios: Aquí podemos meter el cliente GTK o bien cualquier navegador que interactua con el controlador para obtener los datos y presentarnoslos. Serían la parte correspondiente a la Vista

Lo que debemos tener en cuenta, es que postgresql escucha en un puerto, normalmente el 5432. Si instalas varias versiones de postgresql (si, también podemos hacerlo), la siguiente versión en instalarse, lo más normal es que se ponga a la escucha en el puerto 5433.

OpenERP Server también escucha en uno o varios puertos. Esto se define en su fichero de configuración.  No podemos ejecutar varias instancias de openerp escuchando en el mismo puerto, obtendremos un error que nos lo informará.

Por último, tenemos los clientes, en los cuales indicamos a qué dirección o URL nos conectamos, y a qué puerto, y aquí está ya todo listo.

Si ejecutamos varios openerp (cada uno con su directorio y su configuración para no pisarse el puerto), aunque apunten a la misma base de datos, ya sólo nos queda que al conectarnos, indiquemos el puerto del openerp al que nos queremos conectar.

Listo, esto nos permite tener corriendo en una misma máquina openerp 6.1 y openerp 7.

No descarto que alguna librería python, pueda causar algúna incompatibilidad, para casos muy específicos, ya que por las pruebas realizadas, puedo afirmar que esto funciona.

Si además, generas un usuario postgres, para cada instancia de openerp que tengas pensado ejecutar, entonces, un usuario del openep A, no verá las bases de datos de un openerp B, con lo que no estropeará nada (si no lo haces así, seguro que acabas estropeando alguna base de datos, al cargarla con diferentes módulos o versiones de openerp).

Por último, un gráfico describiendo esto mismo:

openerp modelo vista controlador

 

Más info en la propia openerp: Link

TwitterMore...