Forum

Benvenuto!

Questo è il forum ufficiale dell'Associazione Odoo Italia. Dopo esserti registrato potrai partecipare ponendo domande o rispondendo a quelle esistenti. Non scordarti di compilare il tuo profilo e consultare le linee guida prima di iniziare a scrivere.

1

ODOO CE v.12.0 (ISO PNLUG) upgrade

Avatar
Gattuso Stefano

Ciao,  a gennaio dell'anno scorso ho installato e cominciato usare la vostra distro Odoo CE v12  (ISO PNLUG) ... 
ora pero i codici di esenzione non vanno piu bene visto che ne sono stati aggiunti altri e per il forfettario è cambiato.


Esiste una una guida di come fare l upgrade almeno dei moduli ? 

EDIT:

Dopo tante prove sono arrivato alla soluzione lascio qua tutti gli step per aggiornare

#fare un backup completo se è una vm
#fare un backup del db dal sito
http://URLODOO.com/web/database/manager 
 
#stoppare il servizio di odoo
sudo service odoo stop

#isntallare pip3
sudo apt update
sudo apt install python3-pip

#per comodità io cancello anche il log del server 
rm /var/log/odoo/*

#accedere come user odoo
sudo su -l odoo -s /bin/bash

#aggiroanre openupgrade  
pip3 install git+https://github.com/OCA/openupgradelib.git@master

#SALTARE:: aggironare gli oca l10n-italy da git STEP SALTATO
#cd /var/lib/odoo/.local/share/Odoo/addons/12.0/OCA/l10n-italy
#git pull

#aggioranre tutti gli addons
cd /var/lib/odoo/.local/share/Odoo/addons/12.0/custom/
find  -maxdepth 1 -type d  -exec git --git-dir={}/.git --work-tree=$PWD/{} pull \;  
cd /var/lib/odoo/.local/share/Odoo/addons/12.0/OCA/
find  -maxdepth 1 -type d  -exec git --git-dir={}/.git --work-tree=$PWD/{} pull \;  

#verificare i permessi e se mai impostare (in teoria avendo fatto lo switch user ad odoo dovrebbe essere già tutto corretto)
chown odoo:odoo  /var/lib/odoo/.local/share/Odoo/addons/12.0/* -R

#aggiornare il db (attenzione sostituire NOMETUODATABASE con il vostro)
cd /usr/bin
./odoo  -c /etc/odoo/odoo.conf --limit-time-real 99999 -u all -d NOMETUODATABSE  &
 
#controllare ERRORI e WARNING del log del server odoo
tail /var/log/odoo/odoo-server.log -F

#ASPETTARE!!! fino a che il db non verrà aggiornato
#per temrinare il  watch del file file log
CTRT-C 

#provare ad aprire odoo nel web, una volta caricato
#termianre il servizio di odoo avviato con l'upgrade del DB
fg
CTR-C

#tornare all'utente con privilegi sudo
exit

#avviare odoo nella maniera standard
sudo service odoo start


#rigenerare assets #(per correggere alcuni errori che avevo nel invio delle email)
Impostazioni >
Attiva la modlità sviluppatore con Assets > Icona del Bug in alto a sx > Rigenera gruppi di assets



Vorrei ringraziare tutti quelli che mi hanno dato dei suggerimenti per arrivare a questo risultato


 

Avatar
Abbandona
2 Risposte
2
Avatar
Alex Comba
Migliore risposta

Ciao,

Esiste una una guida di come fare l upgrade almeno dei moduli ? 

non esiste una guida, quello che devi fare è aggiornare prima il codice e poi il database. Ti riferisci a quelli di https://github.com/OCA/l10n-italy?

Per poterti essere di maggiore aiuto dovrei almeno conoscere il sistema di installazione utilizzato: es. git, pip, ...

Avatar
Abbandona
0
Avatar
Gattuso Stefano
Migliore risposta

Ciao Alex, dopo tutti i vostri consigli sono riuscito ad aggiornare tutti dli addons .. nel primo post ho aggiunto tutto gli step su come fare.... 
dici che sarebbe possibile inserire tale procedura nella sezione del sito DOC > GUIDE ... credo che non sono l 'unico ad aver scaricato la iso del pnlug e forse sarebbe comoda anche ad altri quella procedura

Avatar
Abbandona
0
Avatar
Gattuso Stefano
Migliore risposta

ciao ho controllato ma non mi sembrano installati con git .. posso cancellari e fare unc lone? ma poi come faccio ad aggiornare il db?

Avatar
Abbandona
1
Avatar
Alex Comba
Migliore risposta

Dovresti poter avviare la tua istanza da linea di comando con: 

./odoo-bin -c etc/odoo/odoo.conf -u nome_modulo  -d nome_database

con -u all aggiorni tutti i moduli installati nel database.

Se vuoi approfondire puoi fare riferimento a https://www.odoo.com/documentation/12.0/reference/cmdline.html#running-the-server


Avatar
Abbandona
0
Avatar
Gattuso Stefano
Migliore risposta

come immaginavo non è andato tutto a buon fine, 

spiego cosa ho fatto.. ..ho controllato meglio e alla fine nella cartella.

/var/lib/odoo/.local/share/Odoo/addons/12.0/OCA/l10n-italy

ho lanciato il comando git pull e mi sembra abbia scaricato gli aggiornamenti dei vari moduli..


per l'aggiornamento al db .. come prima prova ho ricercato il bin come mi avevi detto tu... e lo ho trovato in /usr/bin /  ..allora ho lanciato il comando ma mi dava problemi sui permessi visto che lo stavo lanciando come root

allora ho fatto un edit di /etc/init.d/odoo e al termine della funzione start o aggiunto -u all -d NOMEMIODB

ho avviato odoo ma ricevo questo errore che non capisco bene cosa sia... sembra che il db non si sia aggiornato?


Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 1049, in get
  value = self._data[key][field][record._ids[0]]
KeyError: 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1032, in __get__
  value = record.env.cache.get(record, self)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 1051, in get
  raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('res.company(1,).name', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/qweb.py", line 348, in _compiled_fn
  return compiled(self, append, new, options, log)
  File "<template>", line 1, in template_website_layout_55
  File "<template>", line 2, in body_call_content_54
  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1036, in __get__
  self.determine_value(record)
  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1139, in determine_value
  record._prefetch_field(self)
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 2880, in _prefetch_field
  result = records.read([f.name for f in fs], load='_classic_write')
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 2818, in read
  self._read_from_database(stored, inherited)
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 2945, in _read_from_database
  cr.execute(query_str, params)
  File "/usr/lib/python3/dist-packages/odoo/sql_db.py", line 148, in wrapper
  return f(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/sql_db.py", line 225, in execute
  res = self._obj.execute(query, params)
psycopg2.ProgrammingError: column res_company.max_invoice_in_xml does not exist
LINE 1: ...company"."invoice_is_email" as "invoice_is_email","res_compa...
  ^
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 1049, in get
  value = self._data[key][field][record._ids[0]]
KeyError: 6
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1032, in __get__
  value = record.env.cache.get(record, self)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 1051, in get
  raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('res.users(6,).groups_id', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/qweb.py", line 374, in get_template
  document = options.get('load', self.load)(template, options)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_qweb.py", line 122, in load
  template = env['ir.ui.view'].read_template(name)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 1216, in read_template
  return self._read_template(self.get_view_id(xml_id))
  File "<decorator-gen-33>", line 2, in _read_template
  File "/usr/lib/python3/dist-packages/odoo/tools/cache.py", line 86, in lookup
  key = key0 + self.key(*args, **kwargs)
  File "<string>", line 1, in <lambda>
  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1036, in __get__
  self.determine_value(record)
  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1139, in determine_value
  record._prefetch_field(self)
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 2880, in _prefetch_field
  result = records.read([f.name for f in fs], load='_classic_write')
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/res_users.py", line 1235, in read
  res = super(UsersView, self).read(other_fields, load=load)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/res_users.py", line 451, in read
  return super(Users, self).read(fields=fields, load=load)
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 2818, in read
  self._read_from_database(stored, inherited)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/res_users.py", line 369, in _read_from_database
  super(Users, self)._read_from_database(field_names, inherited_field_names)
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 2945, in _read_from_database
  cr.execute(query_str, params)
  File "/usr/lib/python3/dist-packages/odoo/sql_db.py", line 148, in wrapper
  return f(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/sql_db.py", line 225, in execute
  res = self._obj.execute(query, params)
psycopg2.InternalError: current transaction is aborted, commands ignored until end of transaction block
load could not load template
Template: website.layout
 
Messaggio di errore:
None
Avatar
Abbandona
0
Avatar
Alex Comba
Migliore risposta
psycopg2.ProgrammingError: column res_company.max_invoice_in_xml does not exist
LINE 1: ...company"."invoice_is_email" as "invoice_is_email","res_compa...


Il campo che non trova è max_invoice_in_xml aggiunto da https://github.com/OCA/l10n-italy/pull/1859
Assicurati che sia presente nel tuo codice. Se non fosse così, all'interno di /var/lib/odoo/.local/share/Odoo/addons/12.0/OCA/l10n-italy puoi utilizzare il seg. comando: 

git reset --hard origin/12.0

Avatar
Abbandona
2
Avatar
Davide Corio
Migliore risposta

Questo errore riguardante il campo max_invoice_in_xml a me l'ha dato nelle installazioni dove era presente openupgradelib versione 2 invece di versione 3.

Purtroppo openupgradelib su Pypi non è aggiornato e quindi bisogna installarlo con:

pip install git+https://github.com/OCA/openupgradelib.git@master

Il problema è che se si arriva a quel problema le migrations sono già state eseguite e la versione del pacchetto aggiornata, quindi è necessario manualmente sul db fare il downgrade modificando il campo latest_version nella tabella ir_module_module.

O perlomeno questa è la strada che ho trovato io.


Avatar
Abbandona
0
Avatar
Gattuso Stefano
Migliore risposta

Ciao guardando il log del server `ho trovato alcuni errori di openupgrade ma avevo gia eseguito il tuo comando.




Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 86, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 417, in load_modules
    force, status, report, loaded_modules, update_module, models_to_check)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 313, in load_marked_modules
    perform_checks=perform_checks, models_to_check=models_to_check
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 177, in load_module_graph
    migrations.migrate_module(package, 'pre')
  File "/usr/lib/python3/dist-packages/odoo/modules/migration.py", line 181, in migrate_module
    mod = load_script(pyfile, name)
  File "/usr/lib/python3/dist-packages/odoo/modules/migration.py", line 46, in load_script
    spec.loader.exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/var/lib/odoo/.local/share/Odoo/addons/12.0/OCA/l10n-italy/l10n_it_ddt/migrations/12.0.1.7.1/pre-migrate.py", line 4, in <module>
    from openupgradelib import openupgrade
ModuleNotFoundError: No module named 'openupgradelib'


secondo te cosa è?
Avatar
Abbandona
0
Avatar
Davide Corio
Migliore risposta

ti manca la libreria openupgradelib

Avatar
Abbandona
0
Avatar
Gattuso Stefano
Migliore risposta

TROVATO:

avevo proavto ad eseguire il tuo camando.

pip install git+https://github.com/OCA/openupgradelib.git@master

e avevo ricevuto un errore che mancava pip alloraavevo fatto

apt-install pip 

ma cosi facendo installava python 2.7 . Conq eusti commandi ho risolto

sudo apt install python3-pip
pip3 install git+https://github.com/OCA/openupgradelib.git@master
Avatar
Abbandona
0
Avatar
Gattuso Stefano
Migliore risposta

Allora ho provato a vedere e mi sa che era un problema di permessi.... 

però ora ho questo errore (vedi sotto)

Allora sono andato a cercare questo campo e lo ho trovato nel file : \l10n_it_fatturapa_pec\models\account.py e il file mi sembra uguale uguale a quello che trovo nel repository


allora ho abilitato le funzioni tecniche ..sono andato in Struttura DB > Modelli > account.invoice > e li lo trovo il campo!


:( sto diventando matto ..scusa se faccio così tante domande Alex!

Campo base


Odoo Server Error
aceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 656, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 314, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "/usr/lib/python3/dist-packages/odoo/tools/pycompat.py", line 87, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 698, in dispatch
    result = self._call_function(**self.params)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 346, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 98, in wrapper
    return f(dbname, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 339, in checked_call
    result = self.endpoint(*a, **kw)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 941, in __call__
    return self.method(*args, **kw)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 519, in response_wrap
    response = f(*args, **kw)
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 963, in call_kw
    return self._call_kw(model, method, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 955, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 755, in call_kw
    return _call_kw_model(method, model, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 728, in _call_kw_model
    result = method(recs, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 1396, in load_views
    for [v_id, v_type] in views
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 1396, in <dictcomp>
    for [v_id, v_type] in views
  File "/usr/lib/python3/dist-packages/odoo/addons/account/models/account_invoice.py", line 642, in fields_view_get
    return super(AccountInvoice, self).fields_view_get(view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu)
  File "/usr/lib/python3/dist-packages/odoo/addons/mail/models/mail_thread.py", line 409, in fields_view_get
    res = super(MailThread, self).fields_view_get(view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu)
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 1482, in fields_view_get
    xarch, xfields = View.postprocess_and_fields(self._name, etree.fromstring(result['arch']), view_id)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 1138, in postprocess_and_fields
    self.raise_view_error(message, view_id)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 568, in raise_view_error
    raise ValueError(message)
ValueError: Il campo `fatturapa_state` non esiste

Contesto errore:
Vista `account.invoice.tree.with.onboarding`
[view_id: 879, xml_id: account.invoice_tree_with_onboarding, model: account.invoice, parent_id: 878]assieme a molti altrisono andato a vedere se il file fatturapa_tate esisteva e lo ho trovato in : 
.

Avatar
Abbandona
0
Avatar
Gattuso Stefano
Migliore risposta

ma dici che devo aggiornare solo i moduli italiani o devo fare anche altro? ho una paura di fare tutto ciò :(

Avatar
Abbandona
0
Avatar
Gattuso Stefano
Migliore risposta

Ciao Alex io ho scaricato la iso che viene pubblicizzata qua sul sito con Ubuntu e preinstallato anche odoo... Però non so che metodo abbiamo utilizzato quelli del lun per crearla 😱

Avatar
Abbandona
1
Avatar
Sergio Zanchetta
Migliore risposta

Se hai usato l'ultima versione della ISO (v. 0.5.0) i parametri dovrebbero essere questi:

1) file di configurazione: /etc/odoo/odoo.conf

2) come directory per gli addons è stata usata quella standard usata da odoo: /var/lib/odoo/.local/share/Odoo/addons/12.0

In particolare:

Repository OCA: /var/lib/odoo/.local/share/Odoo/addons/12.0/OCA

Repository custom: /var/lib/odoo/.local/share/Odoo/addons/12.0/custom

3) utente utilizzato: odoo

P.S.: i repository vengono gestiti tramite git.

Avatar
Abbandona
0
Avatar
Gattuso Stefano
Migliore risposta

Mi sa che è precedente alla 0.5.. mi conviene aggiornare a quella ? E poi fare un git pull ?

Avatar
Abbandona
1
Avatar
Sergio Zanchetta
Migliore risposta

Intanto verifica se i parametri della tua ISO corrispondono a quelli indicati ai punti 1) 2) e 3).

Avatar
Abbandona
0
Avatar
Gattuso Stefano
Migliore risposta

Ciao, ho controllato


1) si 


2)  quasi, nel config ci sono  le specifiche cartelle di ogni modulo

es.

/var/lib/odoo/.local/share/Odoo/addons/12.0/OCA/l10n-italy,
/var/lib/odoo/.local/share/Odoo/addons/12.0/OCA/account-financial-tools,
....
/var/lib/odoo/.local/share/Odoo/addons/12.0/custom/backend_theme


3) si odoo viene lanciato con l'utente odoo (controllato tramite htop)
Avatar
Abbandona
0
Avatar
Sergio Zanchetta
Migliore risposta

Ok, hai dovresti avere tutti i parametri necessari che chiedeva Alex.


P.S.: verifica solo se i repo di quella versione non recente della ISO vengono gestiti tramite git. Se così non fosse basta eventualmente eliminare le singole directory dei repository rimpiazzandole poi con un git clone dei vari repo. Non farlo ora però, altrimenti ti aggiorna subito tutti i moduli e non parte più il db.

Avatar
Abbandona
0
Avatar
Gattuso Stefano
Migliore risposta

Allora ho controllato ma io non vedo nessun .git file.....

Scsuate se insito ma allroa come dovrei procedere:.

1) backup virtualmachine 
2) ?? cancellare cartalla /var/lib/odoo/.local/share/Odoo/addons/12.0/OCA/l10n-italy, 
3) ?? nella cartella OCA fare: git clone git@github.com:OCA/l10n-italy.git
4) ma poi alex diceva anche di aggiornare il db? quello come si fa?


ma poi dovrei aggiroanre anche gli altri moduli? e odoo? eee... ?

scusate della mia ignoranza 

Avatar
Abbandona
-1
Avatar
Gattuso Stefano
Migliore risposta

Ciao Alex io ho scaricato la iso che viene pubblicizzata qua sul sito con Ubuntu e preinstallato anche odoo... Però non so che metodo abbiamo utilizzato quelli del lun per crearla 😱

Avatar
Abbandona