odoo安装模块报错& 更新postgresql数据库
在本地win11环境下部署了一个odoo17,一开始还好好的,运行几次之后,每次登录就会报错,安装模块时也会报错。
一开始,服务器的报错信息提示keyerror:mail.... 个人判断应该是缺少模块,在尝试安装了邮件营销的模块后恢复正常。但是随后尝试别的模块时又开始报错。
网页前端和服务器的报错信息中都提示:
‘’‘LINE 1: ..._index" ON "account_analytic_account" USING gin ((jsonb_path...
^
HINT: 没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换. ’‘’
这个问题和数据库有关。linux服务器上部署的是新版本postgresql数据库,本地安装的是postgresql 11,12才加入了account_analytic_account这个函数,缺失这个函数会导致安装计算相关模块时出错。解决办法就是更新数据库。
怎么更新数据库?要么选择下载安装包升级,可以参考这个文档:Windows版 PostgreSQL 利用 pg_upgrade 进行大版升级操作-腾讯云开发者社区-腾讯云 (tencent.com) 但我没有选择这种方法,所以里面的内容未经确定。 因为本地的odoo只是用来测试模块是否正常运行,所以我打算删了整个postgresql,重新安装高版本数据库。
删除操作很好解决,在老版本数据库的安装文件夹里点卸载程序就行。在卸载开始时,会提示全部删除还是保留数据,点全部删除就行了。因为留下的data文件放在高版本里也用不了。卸载组件时也全部卸载。
卸载完成后,建议重启一次。然后去postgresql的官网:PostgreSQL: Downloads,下载更高版本的安装程序。安装路径里最好不要有中文,此外要选择在空文件夹。
在选择数据库时选择C,兼容性好像比选China要好
-----------------------------------------------------------
在重新安装的过程中,安装程序报错: Problem running post-install step.Installation may not complete correctly. The database cluster initialisation failed.
按照网上的教程,出现此问题的主要原因是文件夹权限不够. 解决办法也很简单,右键打开目标安装文件夹的属性菜单,打开权限页面,在你的那一栏用户组(就是Users)增加完全控制和写入的权限。然后再以管理员权限运行安装程序。此时安装好的pgadmin打开就能正常看到postgresql的服务。 打开pgadmin以后,按照教程里的内容完成基本配置即可。
(图是教程里复制的)
参考过的文档:
1. Windows 10平台安装PostgreSQL 14.2详细教程 - 知乎 (zhihu.com)
2. Windows 上安装 PostgreSQL | 菜鸟教程 (runoob.com)
3. odoo 本地安装搭建环境 (windows版 保姆级教程)_odoo windows安装-CSDN博客
4. PostgreSQL 的安装以及在安装过程中遇到的问题及解决方法_the extension must first be installed on the syste-CSDN博客
5. Windows版 PostgreSQL 利用 pg_upgrade 进行大版升级操作-腾讯云开发者社区-腾讯云 (tencent.com)