[Alba-desarrollo] mejorando el schema y fixtures, validaciones

Fernando Toledo ftoledo en docksud.com.ar
Jue Ene 17 01:34:55 CET 2008


(por favor, citen al responder que el mensaje es largo, gracias)

Hola a todos!

Haciendo algunas pruebas para mejorar la creación de nuestros schemas me 
encuentro con lo siguiente:

Si habilito el propel.validate.schema en true,
no puedo generar los .sql:

ragnarok en ntbkragnarok:~/public_html/alba/alba$ ./symfony propel-build-sql
>> schema    converting "/home/ragnarok/publ.../alba/config/schema.yml" to XML
>> schema    putting /home/ragnarok/public_h...lba/config/generated-schema.xml
Buildfile: /home/ragnarok/public_html/alba/dist/symfony-1.0.7/lib/vendor/propel-generator/build.xml
[resolvepath] Resolved /home/ragnarok/public_html/alba/alba/config 
to /home/ragnarok/public_html/alba/alba/config

propel-project-builder > check-project-or-dir-set:

propel-project-builder > check-project-set:

propel-project-builder > set-project-dir:

propel-project-builder > check-buildprops-exists:

propel-project-builder > check-buildprops-for-propel-gen:

propel-project-builder > check-buildprops:

propel-project-builder > configure:
     [echo] Loading project-specific props 
from /home/ragnarok/public_html/alba/alba/config/propel.ini
 [property] Loading /home/ragnarok/public_html/alba/alba/config/propel.ini

propel-project-builder > sql:
    [phing] Calling 
Buildfile '/home/ragnarok/public_html/alba/dist/symfony-1.0.7/lib/vendor/propel-generator/build-propel.xml' 
with target 'sql'
 [property] 
Loading /home/ragnarok/public_html/alba/dist/symfony-1.0.7/lib/vendor/propel-generator/./default.properties

propel > check-run-only-on-schema-change:

propel > sql-check:

propel > pgsql-quoting-check:

propel > sql:
     [echo] +------------------------------------------+
     [echo] |                                          |
     [echo] | Generating SQL for YOUR Propel project!  |
     [echo] |                                          |
     [echo] +------------------------------------------+
[phingcall] Calling 
Buildfile '/home/ragnarok/public_html/alba/dist/symfony-1.0.7/lib/vendor/propel-generator/build-propel.xml' 
with target 'sql-template'
 [property] 
Loading /home/ragnarok/public_html/alba/dist/symfony-1.0.7/lib/vendor/propel-generator/./default.properties

propel > sql-template:
[propel-sql] Processing: generated-schema.xml
[PHP Error] DOMDocument::schemaValidate(): Element 'database', 
attribute 'noXsd': The attribute 'noXsd' is not allowed. [line 435 
of /home/ragnarok/public_html/alba/dist/symfony-1.0.7/lib/vendor/propel-generator/classes/propel/phing/AbstractPropelDataModelTask.php]
[PHP Error] DOMDocument::schemaValidate(): Element 'column', 
attribute 'autoincrement': The attribute 'autoincrement' is not allowed. 
[line 435 
of /home/ragnarok/public_html/alba/dist/symfony-1.0.7/lib/vendor/propel-generator/classes/propel/phing/AbstractPropelDataModelTask.php]
[PHP Error] DOMDocument::schemaValidate(): Element 'column', 
attribute 'autoincrement': The attribute 'autoincrement' is not allowed. 
[line 435 
of /home/ragnarok/public_html/alba/dist/symfony-1.0.7/lib/vendor/propel-generator/classes/propel/phing/AbstractPropelDataModelTask.php]
Execution of target "sql-template" failed for the following 
reason: /home/ragnarok/public_html/alba/dist/symfony-1.0.7/lib/vendor/propel-generator/build-propel.xml:187:1: 
XML schema file 
(/home/ragnarok/public_html/alba/alba/config/generated-schema-transformed.xml) 
does not validate.  See warnings above for reasons validation failed (make 
sure error_reporting is set to show E_WARNING if you don't see any).
[phingcall] /home/ragnarok/public_html/alba/dist/symfony-1.0.7/lib/vendor/propel-generator/build-propel.xml:187:1: 
XML schema file 
(/home/ragnarok/public_html/alba/alba/config/generated-schema-transformed.xml) 
does not validate.  See warnings above for reasons validation failed (make 
sure error_reporting is set to show E_WARNING if you don't see any).

BUILD FINISHED

Total time: 0.3486 seconds
>> file-     /home/ragnarok/public_html/alba/alba/config/generated-schema.xml
ragnarok en ntbkragnarok:~/public_html/alba/alba$ 


Los errores del dom no los puedo arreglar supongo que debo poder poner algun 
attributo en el yml que se pase al xml.
Pero parece que el parser yml->xml es un poco mimoso.

Tampoco encuentro la forma de hacer desde el propel.ini que el SET 
FOREIGN_KEY_CHECKS no lo deje en 0 por defecto.

De todas formas creo que no se podría porque el dump al tener el orden:
DELETE tabla
CREATE tabla
DELETE tablaRelacion
CREATE tablaRelacion

Es imposible poder tenerlo en el orden de creación correcto con las tablas 
relaciones es como el huevo y la gallina (no puedo borrar la tabla porque 
tiene una referencia a la relacion, o no puedo borrar la tabla relacion 
porque es referencia x la tabla principal)

Deberia terner todos los deletes juntos en orden y luego todos los creates, 
pero lamentablemente no veo la forma de que se cree asi desde el symfony.

DELETE tabla1
DELETE tabla2
DELETE tablaNN

CREATE tabla1
CREATE tabla2
CREATE tablaNN

Supongo que todo el mundo termina dejando el FOREIGN_KEY_CHECKS en 0 
como lo veniamos manejando hasta ahora, pero la idea es mejorar esta parte =(

Alguna sugerencia de como lo hacen uds.? 

Toda esta discusión se nos presento porque estamos haciendo que el sistema 
funcione con mysql y pg al mismo tiempo y sin tener versiones de schemas o 
fixtures de datos x separado.

Saludos!
-- 
Dock Sud BBS
http://www.docksud.com.ar
telnet://bbs.docksud.com.ar
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre     : no disponible
Tipo       : application/pgp-signature
Tamaño     : 189 bytes
Descripción: This is a digitally signed message part.
Url        : /pipermail/alba-desarrollo/attachments/20080116/0d8cff5f/attachment.pgp


Más información sobre la lista de distribución Alba-desarrollo