Niano Niano
25Feb/091

Propel 1.3 ya puede inspeccionar Oracle

Gracias a unos cambios en Propel 1.3 en los que he estado currando por necesidad, he podido contribuir al magnífico proyecto Propel y me han hecho comitter en su SVN para temas de Oracle, a pesar de que soy un novato en el área.

A partir de ahora, si necesitáis trabajar contra Oracle con Propel, podréis realizar tareas de ingeniería inversa para generar el modelo a partir de una base de datos viva con los cambios del changeset 1107 de la versión 1.3 de Propel (http://propel.phpdb.org/trac/changeset/1107).

Huelga decir que supone un gran honor para mi el poder realizar esta aportación y que estoy muy contento por ello.

Si encontráis cualquier problema avisad!

Comparte este post:
  • Print
  • del.icio.us
  • Facebook
17Feb/093

Symfony 1.2 + Propel 1.3 + Oracle (Parte 2)

Ahora que ya tenemos el módulo PDO_OCI funcionando, podemos intentar hacer una prueba en Symfony 1.2 con Propel 1.3. Después de dar muchas vueltas, he llegado a la conclusión de que el formato para databases.yml es el siguiente:

all:

propel:

class: sfPropelDatabase

param:

classname: PropelPDO

phptype: oracle

dsn: oci:dbname=//%IP_DEL_SERVIDOR%:%PUERTO_DEL_SERVIDOR%/%BASE_DE_DATOS%

username: %USUARIO%

password: %CONTRASEÑA%

encoding: utf8

persistent: true

pooling: true

(No consigo que el maldito WordPress indente correctamente el código anterior así que recuerda que la jerarquía es: all >> propel >> param >> resto)

El formato de propel.ini sería el siguiente:

propel.database            = oracle

propel.database.driver     = oracle

propel.database.url        = oci:dbname=//%IP_DEL_SERVIDOR%:%PUERTO_DEL_SERVIDOR%/%BASE_DE_DATOS%

propel.database.creole.url = ${propel.database.url}

propel.database.user       = %USUARIO%

propel.database.password   = %CONTRASEÑA%

propel.database.encoding   = utf8

Lo último que necesitas para que la ingeniería inversa funcione es un parseador de estructura de base de datos para bases de datos de Oracle. Propel 1.3 no trae uno, así que puedes usar el que un servidor ha preparado convenientemente: Oracle Schema Parser (PHP5 script) (Bórrale la extensión "doc" y déjalo en un directorio "lib/plugins/sfPropelPlugin/lib/vendor/propel-generator/classes/propel/engine/database/reverse/oracle" nuevo que tienes que crear en la instalación de Symfony).

Con esto y un bizcocho, ya deberías ser capaz de ejecutar la tarea "propel:build-schema" :)

Comparte este post:
  • Print
  • del.icio.us
  • Facebook