En ocasiones nos encontramos con que te instalas algo que siempre ha funcionado bien pero que cuando le cambias un poco el entorno, le tiemblan las canillas.
Por ejemplo, para una nueva aplicación instalamos
l10n-simplified para menejar los mensajes de la aplicación porque siempre ha funcionado. Y todo va bien, correcto, sin complicacines. Pero me llevo la aplicación a su entorno real, corriendo en un servidor
Windows y atacando
SQL Server 2005 a través de un conector
ODBC y me encuentro con que algo o alguien ejecuta constantemente
SET NAMES 'UTF8'
contra la base de datos y ésta responde que
va a ser que no.
Jodo¡ En un mundo sin sorpresas, la primera en la frente. Rebuscando y con ayuda de
Javi encontramos que en
localization_simplified.rb es donde se ejecuta esta sentencia. Después de blasfemar leemos el comentario
# Currently this modifies MySQL. Please add other databases you find necessary
que por una parte me hace pensar en todas las librerías que uso sin molestarme en mirar qué tienen y por otra en que quizás un plugin no deba asumir nada respecto a qué base de datos se utiliza.
En fin, solucionado. Pero hay objetos que no se borran, casualmente todos los que están configurados como
acts_as_list.
Vuelvo a blasfemar (parezco
Gurb). Y veo que de nuevo alguien o algo está poniendo
position = NULL en el registro a borrar justo antes de destruirlo para siempre. Tengo por costumbre poner los campos
position como
not NULL para las tablas que contienen registros configurados como
acts_as_list. Porque si son una lista el campo siempre debe contener un valor.
Y en otro orden de cosas, para qué se pone a
NULL? Para avisarle de que vas a borrarlo? Los registros, hasta la fecha, no tienen sentimientos. No hay que avisarles de nada. Se crean, se borran, se modifican... y punto¡¡¡
Y porqué
MySql traga con ello y
SQL Server no? Pues no lo sé y la verdad, después de todo qué más me da? Si yo lo que quiero es irme a comer a mi casa¡¡¡ Comento la línea
enferma y listo.
Salud y rocanrol¡