Acessar o Odoo Shell
-
Primeiro, tente acessar o shell normalmente:
odoo shell -c /etc/odoo/enterprise.conf --no-http -
Se tudo estiver correto, você já terá acesso ao objeto
env.
Se aparecer o erro
NameError: name 'env' is not defined
-
Significa que você não entrou no odoo shell, mas sim no shell Python padrão.
-
Saia com
exit()
Identificar a base correta
Liste os processos Odoo rodando ps aux
Identifique:
-
Nome da base (
-d nomedabase) -
Usuário do banco
-
Host e porta do PostgreSQL
Acessar o shell especificando a base
Exemplo:
odoo shell -d aguias19 --db_host pgvector_pgvector --db_port 8000 --db_user test26 --db_password *********** -c /etc/odoo/enterprise.conf --no-http
Agora você estará no ambiente correto, com env disponível.
Verificar módulos no estado “to install”
Dentro do shell:
m = env['ir.module.module'].search([('state','=','to install')])
m
Isso retornará os módulos pendentes de instalação.
Forçar alteração para “uninstalled”
-
percorra os módulos retornados pelo filtro (m)
for i in m: -
Dentro do
fordefina ostatecomo'uninstalled', para forçar desinstalaçãoi.state = 'uninstalled' -
Fora do for rodar o comando
env.cr.commit(), para garantir que a alteração seja persistida no banco de dados.
for module in m:
module.state = 'uninstalled'
env.cr.commit()
(Opcional) Validar se funcionou
env['ir.module.module'].search([('state', '=', 'to install')])
Se retornar vazio (ir.module.module()), o processo foi concluído com sucesso.