Good news everybody! We have a delivery to... I mean, I figured it out! 😃
The problem was incorrect use of --load=... launch argument. Because I use letsencrypt module, it has to be loaded server-wide, which is done with this argument.
My setup used: --load=web,letsencrypt
Module web here is specified, because it is a default of this argument and we still want to load it. On Odoo 10.0 the default was web,web_kanban. On Odoo 11.0 it was changed to web. On Odoo 12.0 it is now base,web
As we can see, Odoo 12.0 now has base loaded this way. It means, that module base used to be loaded server-wide (on all databases as a sort of a "singleton") automatically. Therefore database independent HTTP requests like /xmlrpc/db used to work no matter if database was selected. On my setup base was loaded on each database separately and that's why I wouldn't get a response from the server on /xmlrpc/db without first selecting a database. @gr22, tagging you here, as you probably have something similar done with your server 😉
TL;DR: If you are using --load=... launch argument with Odoo 12.0, you have to make sure you have base module loaded with it.
大家好!我有个好消息要告诉大家!我们有一个交付... 我是说,我找到解决办法了!😃
问题出在错误使用 --load=... 启动参数上。 因为我使用了 letsencrypt 模块,它必须在整个服务器范围内加载,这可以通过该参数来实现。
我的设置是:--load=web,letsencrypt
这里指定了 web 模块,因为它是该参数的默认值,并且我们仍然希望加载它。 在 Odoo 10.0 中,默认值是 web,web_kanban。 在 Odoo 11.0 中更改为 web。 而在 Odoo 12.0 中,则变成了 base,web。
正如我们所看到的,Odoo 12.0 现在以这种方式加载 base。这意味着以前模块 base 是自动地作为“单例”被加载到所有数据库中的。因此像 /xmlrpc/db 这样与数据库无关的 HTTP 请求会正常工作,无论是否选择了数据库。 但对于我的设置来说,在每个数据库中都分别加载了 base 模块,所以如果没有先选择一个数据库,在 /xmlrpc/db 上就无法从服务器获取响应。@gr22 ,我标记你一下,在你的服务器上可能也做过类似的操作 😉
简而言之: 如果您正在使用 Odoo 12.0 的 --load=... 启动参数,请确保同时加载 base 模块。