Upgrade Hooks, ¿existen?

139 views
Skip to first unread message

Jordi Francesc

unread,
Aug 21, 2016, 2:56:06 PM8/21/16
to Usuarios Odoo / OpenERP en España
Buenas, si os encontráis en la situación de tener que actualizar un módulo debido a que habéis añadido un Required en algún campo, ¿cómo actualizáis los registros para que no pete la actualización, sin tener que añadirle un default?

Suena muy especifico para haberlo querido plantear en abstracto.. el escenario es:
- En SaleOrder debo añadir un Selection field required.
- Ya tengo registros en SaleOrder y al actualizar me peta porque no puede aplicar una restricción Not Null a una columna que contenga Nulls.

¿Como lo resolvéis, creáis un modulo nuevo con un post install hook para actualizar los registros antes de hacer el upgrade del modulo en cuestión?

No sé si me explico

cubells

unread,
Aug 21, 2016, 11:08:54 PM8/21/16
to openerp-s...@googlegroups.com
El 21/08/16 a les 20:56, Jordi Francesc ha escrit:
> Buenas, si os encontráis en la situación de tener que actualizar un
> módulo debido a que habéis añadido un Required en algún campo, ¿cómo
> actualizáis los registros para que no pete la actualización, sin tener
> que añadirle un default?
>
> Suena muy especifico para haberlo querido plantear en abstracto.. el
> escenario es:
> - En SaleOrder debo añadir un Selection field required.
> - Ya tengo registros en SaleOrder y al actualizar me peta porque no
> puede aplicar una restricción Not Null a una columna que contenga Nulls.
>

No te debería de petar, simplemente al reiniciar el servidor con el
update=módulo, te debería de aparecer un error en el log del servidor.


> ¿Como lo resolvéis, creáis un modulo nuevo con un post install hook para
> actualizar los registros antes de hacer el upgrade del modulo en cuestión?
>


Es una solución, la más correcta.

También lo que hago es una consulta a la base de datos para actualizar
los valores. Todo depende de lo que te resulte más cómodo.

--
Atentament, cubells.
--

Pedro Manuel Baeza Romero

unread,
Aug 22, 2016, 3:23:27 AM8/22/16
to Usuarios Odoo / OpenERP en España
Dependiendo de si el nombre de archivo empieza por pre- o por post- se ejecutará antes de actualizar o después respectivamente.

Un saludo.



--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios Odoo / OpenERP en España" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a openerp-spain-users+unsubscribe...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/d/optout.

Jordi Francesc

unread,
Aug 22, 2016, 12:11:37 PM8/22/16
to openerp-s...@googlegroups.com
2016-08-22 5:08 GMT+02:00 cubells <vic...@vcubells.net>:
El 21/08/16 a les 20:56, Jordi Francesc ha escrit:
Buenas, si os encontráis en la situación de tener que actualizar un
módulo debido a que habéis añadido un Required en algún campo, ¿cómo
actualizáis los registros para que no pete la actualización, sin tener
que añadirle un default?

Suena muy especifico para haberlo querido plantear en abstracto.. el
escenario es:
- En SaleOrder debo añadir un Selection field required.
- Ya tengo registros en SaleOrder y al actualizar me peta porque no
puede aplicar una restricción Not Null a una columna que contenga Nulls.


No te debería de petar, simplemente al reiniciar el servidor con el update=módulo, te debería de aparecer un error en el log del servidor.


Tienes razón, no me petaba. Dramaticé un poco porque en ese momento estaba programando en modo berserk y, al ver el warning, pensé que se me iba a olvidar alterar la tabla cuando pasara el modulo a producción.
 

¿Como lo resolvéis, creáis un modulo nuevo con un post install hook para
actualizar los registros antes de hacer el upgrade del modulo en cuestión?



Es una solución, la más correcta.

También lo que hago es una consulta a la base de datos para actualizar los valores. Todo depende de lo que te resulte más cómodo.

--
Atentament, cubells.
--
--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios Odoo / OpenERP en España" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a openerp-spain-users+unsubscribe...@googlegroups.com.

Jordi Francesc

unread,
Aug 22, 2016, 12:15:55 PM8/22/16
to openerp-s...@googlegroups.com
2016-08-22 9:22 GMT+02:00 Pedro Manuel Baeza Romero <pedro...@gmail.com>:
Dependiendo de si el nombre de archivo empieza por pre- o por post- se ejecutará antes de actualizar o después respectivamente.

Un saludo.


Esto es genial Pedro. Me resuelve un montón de cosas! Ya me extrañaba que nadie hubiera pensado en algo así. Hasta ahora venía haciendo cosas como crear módulos vacíos para ejecutar un hook post install. 

Gracias!

Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a openerp-spain-users+unsub...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Gabriel Davini

unread,
Aug 22, 2016, 2:03:06 PM8/22/16
to openerp-s...@googlegroups.com

2016-08-22 4:22 GMT-03:00 Pedro Manuel Baeza Romero <pedro...@gmail.com>:
Dependiendo de si el nombre de archivo empieza por pre- o por post- se ejecutará antes de actualizar o después respectivamente.

Un saludo.

Yo tenía entendido que para ejecutar estos scripts era necesario usar openupgrade, esto sigue siendo asi o el servidor común de odoo ya los ejecuta?


--
Gabriel.

Pedro Manuel Baeza Romero

unread,
Aug 22, 2016, 2:08:23 PM8/22/16
to Usuarios Odoo / OpenERP en España
OpenUpgrade es una capa que se monta sobre este sistema de migración, pero no es necesario. Otra cosa es que se utilice la librería openupgradelib como apoyo, que no deja de ser como otra librería Python que se instala con pip.

Un saludo.

--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios Odoo / OpenERP en España" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a openerp-spain-users+unsub...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Gabriel Davini

unread,
Aug 22, 2016, 2:09:54 PM8/22/16
to openerp-s...@googlegroups.com
Muchas gracias.

Saludos

2016-08-22 15:07 GMT-03:00 Pedro Manuel Baeza Romero <pedro...@gmail.com>:
OpenUpgrade es una capa que se monta sobre este sistema de migración, pero no es necesario. Otra cosa es que se utilice la librería openupgradelib como apoyo, que no deja de ser como otra librería Python que se instala con pip.

Un saludo.
El 22 de agosto de 2016, 20:02, Gabriel Davini <gabrielfranciscodavini@gmail.com> escribió:

2016-08-22 4:22 GMT-03:00 Pedro Manuel Baeza Romero <pedro...@gmail.com>:
Dependiendo de si el nombre de archivo empieza por pre- o por post- se ejecutará antes de actualizar o después respectivamente.

Un saludo.

Yo tenía entendido que para ejecutar estos scripts era necesario usar openupgrade, esto sigue siendo asi o el servidor común de odoo ya los ejecuta?


--
Gabriel.

--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios Odoo / OpenERP en España" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a openerp-spain-users+unsubscribe...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios Odoo / OpenERP en España" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a openerp-spain-users+unsub...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
Gabriel.

cubells

unread,
Aug 22, 2016, 2:29:08 PM8/22/16
to openerp-s...@googlegroups.com
El 22/08/16 a les 20:02, Gabriel Davini ha escrit:
>
>
> Yo tenía entendido que para ejecutar estos scripts era necesario usar
> openupgrade, esto sigue siendo asi o el servidor común de odoo ya los
> ejecuta?
>


Más info:

https://github.com/OCA/OCB/blob/9.0/openerp/modules/migration.py#L21

--
Atentament, cubells.
--

Gabriel Davini

unread,
Aug 22, 2016, 3:04:45 PM8/22/16
to openerp-s...@googlegroups.com
gracias cubells! me sirvió leer eso para entender cómo funcionaba.

habría que renombrarlo (cambiar el '_' por un '-'), no?


--
Gabriel.

Pedro Manuel Baeza Romero

unread,
Aug 22, 2016, 3:12:23 PM8/22/16
to Usuarios Odoo / OpenERP en España
Realmente sólo se comprueba si empieza por 'pre', no por 'pre-' o 'pre_'.

Un saludo.

--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios Odoo / OpenERP en España" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a openerp-spain-users+unsub...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Gabriel Davini

unread,
Aug 22, 2016, 3:18:21 PM8/22/16
to openerp-s...@googlegroups.com

2016-08-22 16:11 GMT-03:00 Pedro Manuel Baeza Romero <pedro...@gmail.com>:
Realmente sólo se comprueba si empieza por 'pre', no por 'pre-' o 'pre_'.

Entiendo que busca por 'pre-' o 'post-', mira este código:

https://github.com/OCA/OCB/blob/9.0/openerp/modules/migration.py#L109



--
Gabriel.

Pedro Manuel Baeza Romero

unread,
Aug 22, 2016, 3:27:48 PM8/22/16
to Usuarios Odoo / OpenERP en España
Llevas razón, pues estaba yo confiado en que se miraba únicamente la palabra sin el guión. Ya he renombrado el script para que se ejecute

Gracias por darte cuenta.

Un saludo.

--

Ana Juaristi

unread,
Aug 22, 2016, 5:55:01 PM8/22/16
to openerp-s...@googlegroups.com

Me estaba preguntando al leer el hilo si no deberiamos hacer un blog post en la web de odoospain explicando un poco todo esto.
Aunque no tiene que ver mucho con la localización en sí, considero que puede ser interesante para la comunidad en general. Como lo veis?


El 22/8/2016 21:27, "Pedro Manuel Baeza Romero" <pedro...@gmail.com> escribió:
Llevas razón, pues estaba yo confiado en que se miraba únicamente la palabra sin el guión. Ya he renombrado el script para que se ejecute

Gracias por darte cuenta.

Un saludo.
El 22 de agosto de 2016, 21:17, Gabriel Davini <gabrielfranciscodavini@gmail.com> escribió:

2016-08-22 16:11 GMT-03:00 Pedro Manuel Baeza Romero <pedro...@gmail.com>:
Realmente sólo se comprueba si empieza por 'pre', no por 'pre-' o 'pre_'.

Entiendo que busca por 'pre-' o 'post-', mira este código:

https://github.com/OCA/OCB/blob/9.0/openerp/modules/migration.py#L109



--
Gabriel.

--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios Odoo / OpenERP en España" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a openerp-spain-users+unsubscribe...@googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.

Pedro Manuel Baeza Romero

unread,
Aug 22, 2016, 6:27:56 PM8/22/16
to Usuarios Odoo / OpenERP en España
Sí, siempre puede ser útil, aunque es solo uno de los cientos de aspectos que hay en Odoo.

Un saludo.

Alberto Luengo Cabanillas

unread,
Aug 22, 2016, 7:39:41 PM8/22/16
to openerp-s...@googlegroups.com
+1, me parece muy interesante.
Reply all
Reply to author
Forward
0 new messages