Mapeador Objeto-Relacional

Uma barreira para a implantação do Plone (e antes dele, o próprio Zope), que é a base do Portal Modelo e SAAP, sempre foi o ZODB. Esse banco de dados orientado a objetos é revolucionário e espetacular, mas poucos o conhecem.

Quando você explora um pouco mais o ZODB, descobre que ele não tem tabelas nem SQL. É tão bizantino para quem não programa em Python que você se questiona: Será que funciona? E caso eu precise de meus dados, como farei para acessá-los?

Para resolver esse problema o Interlegis desenvolveu um mapeador objeto-relacional, uma camada de software que permite que os usuários do Portal Modelo, SAAP etc. continuem a usar o software da maneira que estão habituados, mas que tenham seus dados armazenados em um banco de dados relacional. Esse produto foi chamado de interlegis.sqlalchemystorage e está disponível no repositório Subversion do Interlegis, acessível via Colab, ou pelo SVN, através do comando:

$ svn export http://repositorio.interlegis.gov.br/interlegis.sqlalchemystorage/trunk interlegis.sqlalchemystorage

O que ele faz?

Esse mapeador objeto-relacional permite que seja definido onde os dados do schema de objetos Archetypes (os campos que você preenche quando cria uma notícia, ou página no Portal Modelo, "para simplificar") sejam armazenados no ZODB (como é hoje), num banco de dados relacional (MySQL, PostgreSQL etc.) ou em ambos! O modo ambos é especialmente interessante, pois atua como uma replicação ativa e que respeita a integridade transacional nos dois bancos.

O código foi testado com o Plone 2.5 (base do Portal Modelo 2.0 e SAAP 2.0) e a respectiva versão de Archetypes que o acompanha. Isso significa que o Portal Modelo "padrão" (versão 1.0) não funcionará com esse código (talvez até funcione, mas não foi testado). Garantidamente, esse código funcionará perfeitamente com o Portal Modelo 2.0.

Os interessados podem ler a documentação abaixo. Nela está descrito todo o processo de instalação, o que inclui uma lista de dependências. De qualquer forma, o código é genérico e pode ser utilizado com qualquer aplicação Plone desenhada sobre o framework Archetypes.

Download

Documentação

Documentation

English version of the PDF documentation. Thanks to Inus Scheepers for translations!

Última modificação 3 anos atrás Última modificação em 13/02/2015 19:39:59
 

The contents and data of this website are published under license:
Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual.