Pylons y Content Mirror

Jan 13, 2009 06:46 AM
Estuve experimentando con Pylons y Content Mirror. El resultado, un producto experimental llamado Plyne.

Siguiendo posts de Carlos De La Guardia y Kapil Thangavelu (alias hazmat) comence a jugar con ContentMirror. ContentMirror serializa el contenido de un sitio Plone  en una base de datos relacional. Una vez que el contenido está en la bdd, es posible escribir una pequeña aplicación que consuma esos datos. El resultado, una alternativa liviana para despliegues de Plone. En mi caso, use Pylons y me sorprendio lo sencillo que resulto todo.

De acuerdo con la documentación, Content Mirror soporta al menos MySql y Postgresql, pero soy muy vago para configurar un motor y por ello comence usando Sqlite. De todos modos, mi vagancia no termina ahi y ni si quiera queria pensar como configurar Content Mirror para sqlite y asi fue como encontre un documento en  eletztrick.de con las lineas necesarias. Genial!.

Siguiendo esos pasos sencillos, obtuve el contenido de Plone en la bdd relacional. Las tablas que se generan son muy intuitivas, por ejemplo en un sitio Plone por defecto se obtiene algo del estilo:

table|content|content|3|CREATE TABLE content (
        content_id INTEGER NOT NULL,
        id VARCHAR(256) NOT NULL,
        uid VARCHAR(36) NOT NULL,
        portal_type VARCHAR(64),
        status VARCHAR(64),
        type VARCHAR(64),
        container_id INTEGER,
        title TEXT,
        description TEXT,
        subject TEXT,
        location TEXT,
        contributors TEXT,
        creators TEXT,
        creation_date TIMESTAMP,
        modification_date TIMESTAMP,
        effectivedate TIMESTAMP,
        expirationdate TIMESTAMP,
        language TEXT,
        rights TEXT,
        PRIMARY KEY (content_id),
         FOREIGN KEY(container_id) REFERENCES content (content_id)
)
.....
table|atdocument|atdocument|22|CREATE TABLE atdocument (
    content_id INTEGER NOT NULL, 
    text TEXT, 
    presentation BOOLEAN, 
    tablecontents BOOLEAN, 
    PRIMARY KEY (content_id), 
     FOREIGN KEY(content_id) REFERENCES content (content_id) ON DELETE CASCADE
)

 

Solo por mostrar dos casos. El SQL completo esta disponible aquí. Content Mirror soporta tipos de contenidos hechos con Archetypes, aunque no probe todavia esta funcionalidad. Usando estas tablas hice un dump y aquí está el archivo con la bdd para Sqlite3.

Con respecto a Plyne, la aplicación Pylons, no hay mucho que decir salvo que es un proyecto experimental, algunas líneas no son muy elegantes pero mi idea era ver que se podia hacer en una tarde y a pesar de ello funciona!(tm). La aplicación está disponible aquí y es posible  verla funcionando aquí -este enlace es de prueba y puede no funcionar en el futuro-.

Mi meta es continuar con Plyne para cubrir al menos dos casos base, este blog y el sitio de menttes.

Comments (0)