无法将PostgreSQL与odoo连接

时间:2018-11-23 17:15:59

标签: python-3.x odoo

我在aws ec2中配置了odoo并从rds连接postgresql。当我运行comman ./odoo-bin --config = / etc / odoo.conf并尝试从浏览器访问时,出现以下错误。

postgresql version : 9.6.5

odoo verson : 12

ERROR odoo_db odoo.modules.loading: Database odoo_db not initialized, you can force it with `-i base` 

File "/opt/odoo/odoo/odoo/modules/registry.py", line 176, in __getitem__
    return self.models[model_name]
KeyError: 'ir.http' - - -

,也收到此错误 enter image description here

3 个答案:

答案 0 :(得分:0)

第一眼问题是尽管数据库是在Postgres中创建的,但是它没有与odoo相关的必需设置记录,即基本设置。您可以通过直接访问数据库并查看表数或浏览某些表来进行验证。

有时会创建数据库[具体来说,它会提供与您之前创建的数据库名称相似的数据库名称,并在以后删除它们[从PG删除但在会话或数据库位置路径中仍然有痕迹],该数据库将无法正确初始化。

解决方案:

  1. 创建名称不同的示例数据库,首字母完全不超过4个字符并检查
  2. 从odoo.conf文件初始化数据库,添加db_name = <您的数据库名称> {出于实验目的,输入完全不同的名称},然后重新启动odoo服务并检查

希望它会有所帮助。 Njoy故障排除!

答案 1 :(得分:0)

./ odoo-bin --addons-path = addons --database = odoo --db_user = odoo --db_password = odoo --db_host = localhost --db_port = 5432 -i INIT,

明确提供数据库名称,用户名和密码,“-i INIT”选项初始化odoo数据库

答案 2 :(得分:0)

首先做@FaisalAnsari 在here 中所说的(我在下面提到的):

*

<块引用>

到 RDS 并在 PostgreSQL 中创建数据库并配置 server.conf 文件如下所示。


;This is the password that allows database operations:

;admin_passwd = admin

db_host = rds_endpoint (after creating database you will get
rds_endpoint)

db_port = False

db_user = "user name which is created by you to the database"

db_password = "password which is created"

;addons_path =
/home/deadpool/workspace/odoo_13_community/custom_addons,
/home/deadpool/workspace/odoo_13_community/custom_addons 

然后转到命令行并执行以下操作。

  1. 停止你的 odoo 实例
~$ service odoo stop
  1. 为用户 odoo 启用命令行
~$ chsh -s /bin/bash odoo
  1. 以 odoo 用户身份从命令行执行 odoo
~$ runuser -l odoo -c "odoo -i base -d YourRDSDatabase --db_host YourAmazonRDSHost.Address.rds.amazonaws.com -r YourRDSDatabaseUserName -w YourRDSDatabasePassword --stop-after-init"
  1. 初始化完成后,启动odoo服务
~$ service odoo start

疑难解答:

如果 odoo 没有正确启动,请确保 RDS 实例中的数据库用户至少对您正在使用的数据库具有权限。

~$ psql --host=YourAmazonRDSHost.Address.rds.amazonaws.com --port=5432 --username=YourRDSDatabaseUserName --password --dbname=YourRDSDatabase

当你在 postgresql 中输入以下内容时:

~$ grant all privileges on database YourRDSDatabase to YourRDSDatabaseUserName;

~$ \q

然后从第 3 步开始重试。

希望有帮助!!