[18.0] [FIX] l10n_it_riba_oca: fix scripts for OpenUpgrade migration#5131
[18.0] [FIX] l10n_it_riba_oca: fix scripts for OpenUpgrade migration#5131odooNextev wants to merge 1 commit intoOCA:18.0from
Conversation
58251a9 to
f7eb5a7
Compare
monen17
left a comment
There was a problem hiding this comment.
Grazie della PR!
Non ho provato la migrazione ma ho fatto solo revisione del codice, vedi i commenti qui sotto.
|
|
||
|
|
||
| def migrate(cr, installed_version): | ||
| def migrate(cr, version): |
There was a problem hiding this comment.
Se questo non serve meglio toglierlo, così in questo commit ci sono solo le modifiche necessarie
| Called from pre-migration script with cursor-only access. | ||
| Creates an env from cr and delegates to pre_absorb_old_module. | ||
| """ | ||
| env = api.Environment(cr, 1, {}) # uid=1 (admin), empty context |
There was a problem hiding this comment.
L'utente con ID 1 non è admin ma Odoobot
| from odoo.addons.l10n_it_riba_oca import hooks | ||
|
|
||
|
|
||
| def migrate(cr, installed_version): | ||
| def migrate(cr, version): | ||
| # Used by OpenUpgrade when module is in `apriori` | ||
| hooks.migrate_old_module(cr) |
There was a problem hiding this comment.
Possiamo invece usare openupgradelib e chiamare direttamente pre_absorb_old_module?
Così è analogo a come viene fatto negli altri moduli del repository, vedi ad esempio:
There was a problem hiding this comment.
Se l'unica cosa da fare nella migrazione è rinominare il modulo, probabilmente non serve nemmeno questo file perché la rinomina viene già eseguita in https://github.com/OCA/OpenUpgrade/blob/82572397744b96c1a1ad706d8a911abc90ee4dea/openupgrade_scripts/scripts/base/18.0.1.3/pre-migration.py#L74, puoi verificare?
Se non serve meglio rimuoverlo e lasciamo solo l'hook pre_absorb_old_module.
| @@ -15,3 +17,13 @@ def pre_absorb_old_module(env): | |||
| ], | |||
| merge_modules=True, | |||
There was a problem hiding this comment.
Non riguarda le modifiche di questa PR, ma ho notato che qui si usa merge_modules=True, mentre in https://github.com/OCA/OpenUpgrade/blob/82572397744b96c1a1ad706d8a911abc90ee4dea/openupgrade_scripts/apriori.py#L25 il modulo è elencato tra i moduli da rinominare, puoi verificare se serve davvero usare merge_modules oppure no?
Se serve, allora il modulo va spostato nella lista dei moduli da mergiare; altrimenti va tolto da qui.
Così la migrazione tramite OpenUpgrade e l'hook di init fanno le stesse operazioni.
Gli script di pre-migrazione di OpenUpgrade ricevono solo il cursore del database (
cr) e una stringa di versione come argomenti, mentre il normale flusso di aggiornamento di Odoo (tramite frontend oodoo -u) fornisce un oggettoenvcompleto.Questo commit introduce una funzione wrapper
migrate_old_module(cr)inhooks.pyche costruisce unapi.Environmenta partire dal solo cursore, permettendo di riutilizzare correttamente la logica esistente dipre_absorb_old_module(env)anche durante una migrazione con OpenUpgrade.Inoltre,
migrate(cr, installed_version)nello script di pre-migrazione è stata corretto inmigrate(cr, version), che è esattamente quella attesa da OpenUpgrade.Senza queste modifiche, la migrazione funzionava solo aggiornando il modulo dal frontend di Odoo (dove
envè già disponibile), ma falliva silenziosamente con OpenUpgrade, che chiama la funzione passando solo il cursore senza costruire unenvautomaticamente.