[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