Ciao a tutti,
ci sono alcune tabelle che non riesco a visualizzare o modificare. Per esempio la scheda di un prodotto o l'elenco del piano dei conti. Succede da quando ho ripristinato un DB. Come posso risolvere?
Grazie per l'aiuto, ciao
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.
Ciao a tutti,
ci sono alcune tabelle che non riesco a visualizzare o modificare. Per esempio la scheda di un prodotto o l'elenco del piano dei conti. Succede da quando ho ripristinato un DB. Come posso risolvere?
Grazie per l'aiuto, ciao
Ho risolto in altro modo. Ho fatto un backup del DB e poi ho fatto un ripristino da web db manager con la modalità "Move" invece che "Copy" ed è andato tutto a posto!
Grazie comunque per il supporto, sempre preziosissimo e graditissimo
Allora dobbiamo capire in che ambiente sei:
hai un venv?
La vista sale_report è una vista creata da chi? È una vista temporanea?
Mi è capitato delle volte che i moduli presi dall’oca non erano completamente compatibili con la versione che stavo utilizzando.
puoi descrivere versione di Odoo, Postgresql, sistema operativo, ambiente, etc?
E' una macchina virtuale AWS Debian 11 / Odoo 14 creata da me seguendo le istruzioni Odoo. Nella cartella /etc/postgresql c'è sia la versione 14 che la 15. Non credo che sia in ambiente virtuale, anche perchè quando ho fatto accesso a postgresql e ho elencato i DB c'erano effettivamente quelli in uso.
Odoo funziona perfettamente, nel senso che uso quotidianamente i moduli progettazione, spese, sales, fatturazione, con emissione e invio PEC delle fatture elettroniche. I database sono però stati ripristinati dai backup della precedente macchina virtuale ed è solo dopo il ripristino che danno questo problema di permessi. Le viste dei prodotti sono quelle standard di Odoo. Di moduli aggiuntivi non ufficiali ci sono solo quelli OCA della contabilità italiana e quello OCA per il Web Responsive.
La vista sale_report immagino che sia una vista standard (è richiamata quando provo ad aprire la scheda di un prodotto). Ho provato a cercarla da Funzioni tecniche sia fra le viste standard che fra le viste personalizzate ma esattamente con questo nome non l'ho trovata. Ho trovato altre 4 viste che includono sale.report nel nome (sale.report.search, sale.report.pivot, sale.report.graph, Sale report common assets).
Forse può aiutare il testo completo dell'errore in Odoo:
"Errore:
Odoo Server Error
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
result = request.dispatch()
File "/usr/lib/python3/dist-packages/odoo/http.py", line 685, in dispatch
result = self._call_function(**self.params)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 361, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 94, in wrapper
return f(dbname, *args, **kwargs)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 349, in checked_call
result = self.endpoint(*a, **kw)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 914, in __call__
return self.method(*args, **kw)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 533, in response_wrap
response = f(*args, **kw)
File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 1388, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 1380, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/usr/lib/python3/dist-packages/odoo/api.py", line 399, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/usr/lib/python3/dist-packages/odoo/api.py", line 386, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/usr/lib/python3/dist-packages/odoo/models.py", line 3022, in read
return self._read_format(fnames=fields, load=load)
File "/usr/lib/python3/dist-packages/odoo/models.py", line 3042, in _read_format
vals[name] = convert(record[name], record, use_name_get)
File "/usr/lib/python3/dist-packages/odoo/models.py", line 5694, in __getitem__
return self._fields[key].__get__(self, type(self))
File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1021, in __get__
self.compute_value(recs)
File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1177, in compute_value
records._compute_field_value(self)
File "/usr/lib/python3/dist-packages/odoo/addons/mail/models/mail_thread.py", line 410, in _compute_field_value
return super()._compute_field_value(field)
File "/usr/lib/python3/dist-packages/odoo/models.py", line 4069, in _compute_field_value
getattr(self, field.compute)()
File "/usr/lib/python3/dist-packages/odoo/addons/sale/models/product_template.py", line 63, in _compute_sales_count
product.sales_count = float_round(sum([p.sales_count for p in product.with_context(active_test=False).product_variant_ids]), precision_rounding=product.uom_id.rounding)
File "/usr/lib/python3/dist-packages/odoo/addons/sale/models/product_template.py", line 63, in <listcomp>
product.sales_count = float_round(sum([p.sales_count for p in product.with_context(active_test=False).product_variant_ids]), precision_rounding=product.uom_id.rounding)
File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1021, in __get__
self.compute_value(recs)
File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1177, in compute_value
records._compute_field_value(self)
File "/usr/lib/python3/dist-packages/odoo/addons/mail/models/mail_thread.py", line 410, in _compute_field_value
return super()._compute_field_value(field)
File "/usr/lib/python3/dist-packages/odoo/models.py", line 4069, in _compute_field_value
getattr(self, field.compute)()
File "/usr/lib/python3/dist-packages/odoo/addons/sale/models/product_product.py", line 28, in _compute_sales_count
for group in self.env['sale.report'].read_group(domain, ['product_id', 'product_uom_qty'], ['product_id']):
File "/usr/lib/python3/dist-packages/odoo/models.py", line 2254, in read_group
result = self._read_group_raw(domain, fields, groupby, offset=offset, limit=limit, orderby=orderby, lazy=lazy)
File "/usr/lib/python3/dist-packages/odoo/models.py", line 2381, in _read_group_raw
self._cr.execute(query, where_clause_params)
File "<decorator-gen-3>", line 2, in execute
File "/usr/lib/python3/dist-packages/odoo/sql_db.py", line 101, in check
return f(self, *args, **kwargs)
File "/usr/lib/python3/dist-packages/odoo/sql_db.py", line 300, in execute
res = self._obj.execute(query, params)
Exception
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/odoo/http.py", line 641, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 317, in _handle_exception
raise exception.with_traceback(None) from new_cause
psycopg2.errors.InsufficientPrivilege: permission denied for view sale_report"
Buonasera ciao,
probabilmente sono i permessi che la role che utilizzi per la connessione al db. Se l’hai creata tu l’utenza assicurati di fare owner del db di odoo in modo da permettere qualsiasi operazione su qualsiasi tabella, ma utilizza un utenza dedicata è solo per quel db così non fai buchi di sicurezza.
spero di esserti stato di aiuto. Sono a disposizione
buonaserata
Grazie! Seguendo queste istruzioni dovrei quindi risolvere:
https://www.delftstack.com/howto/postgres/grant-privileges-to-the-user-in-postgresql/
si se cerchi delle guide migliori anche digital ocean sono molto bravi e sono chiari ma comunque è semplice devi garantire all'utente che si connette al db di avere ALL PRIVILEGES sul DB di Odoo.
Puoi agire in due modi o dai i permessi all'utente oppure fai diventare l'utente owner del DB:
Owner del DB:
ALTER DATABASE mydb OWNER TO dbowner;
source: [https://serverfault.com/questions/198002/postgresql-what-does-grant-all-privileges-on-database-do]
Privilegi:
GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO reader;
source: [https://www.postgresqltutorial.com/postgresql-administration/postgresql-grant/]
Spero di averti aiutato a risolvere.
Ho verificato e l'utente odoo era già owner del db_test. Ho comunque lanciato il comando per dargli tutti i privilegi. Quindi ho stoppato e riavviato sia Postresql che Odoo. Purtroppo il problema è rimasto, se provo ad aprire la scheda di un prodotto ottengo: "psycopg2.errors.InsufficientPrivilege: permission denied for view sale_report"
Il LOG di Postresql riporta la stessa cosa "2023-03-13 17:52:39.382 UTC [335468] odoo@db_test ERROR: permission denied for view sale_report"
Forse non basta dare i privilegi su tutte le tabelle... Cosa mi suggerite di fare?
Dobbiamo garantire che l’utente abbia tutte le tipologie di diritti se ne manca una le query non vanno a buon fine, ma se concedendo i diritti alle sequence e a tutti i “layer” di autwnticazione non funziona forse il db non coincide con la versione di Odoo oppure nel modulo di Odoo risiede un codice non corretto per il db.
il db è pubblico? Posso avere accesso così lo controllo?
Scusa, troppo diretto è che mi piace risolvere…
:)
Sicuramente per stare tranquilli io farei un controllo sulla versione di provenienza del DB perchè mi hai detto che lo hai importato quindi potrebbe non essere in linea con la versione, inoltre in postgresql ci sono vari livelli di autenticazione riporto un link per il controllo di tutti. L'errore è relativo ai permessi ma potrebbe essere generato da funzioni non congrue con il db.
https://dba.stackexchange.com/questions/53914/permission-denied-for-relation-table