当我尝试连接到远程PostgreSQL服务器时,我得到了
$ awk -F'|' -v c="$CURR_SNAP" '
> NR==FNR {
> for (i=1;i<NF;i++)
> a[$4]=i>1?a[$4]"|"$i:a[$4]$1
> }
> NR>FNR {
> if(a[$1])
> print a[$1]"|"c
> }
> ' file1 file2
DOMAIN1|USER1|LE1|ORG1|ACCES1|RSCTYPE1|123
DOMAIN3|USER3|LE3|ORG3|ACCES3|RSCTYPE3|123
将FreeSWITCH Lua API与2019-08-23[ERR] switch_core_db.c:223 SQL ERR [unable to open database file]
连接字符串一起使用时:
pgsql
(根据docs中的建议)
即使在FreeSWITCH服务重启后,此设置也可以正常工作,
然后我愚蠢地在Debian 9上做了conn_string =
"pgsql://hostaddr=1.2.3.4" ..
" dbname=my-db" ..
" user=postgres" ..
" password=postgres" ..
" options='-c client_min_messages=NOTICE'" ..
" application_name='freeswitch'"
freeswitch.Dbh(conn_string)
就是这样。
答案 0 :(得分:2)
在最后的沮丧中,我诉诸于使用新的FreeSWITCH安装来重新创建整个VM,并在Debian 9 Stretch install guide中找到了一个新部分:
1.10不兼容的更改
因为现在即使您仍然使用Fs1.10软件包也已安装 1.8回购,您会更好地意识到一个不兼容的更改:
sudo apt update && sudo apt upgrade
不再是核心,而是恰当地命名为pgsql
。您不得将
mod_pgsql
加载到mod_pgsql
中(不起作用),但是 在一个特殊的附加xml文件中,在相同的“ autoload_configs”中 目录。文件名:
modules.conf.xml
pre_load_modules.conf.xml
因此,当我做<configuration name="pre_load_modules.conf" description="Modules">
<modules>
<!-- Databases -->
<!-- <load module="mod_mariadb"/> -->
<load module="mod_pgsql"/>
</modules>
</configuration>
时,FreeSWITCH从1.8升级到1.10。
(2019/08/23)更新:尽管有上述警告,但更新sudo apt upgrade
仍无效。仅在将pre_load_modules.conf.xml
添加到mod_pgsql
后才连接。
有关Debian 9 Stretch的完整解决方案:
modules.conf.xml
添加到<load module="mod_pgsql"/>
。modules.conf.xml
sudo systemctl stop freeswitch
(2019/09/03)来自SignalWire平台工程师Andrey Volk的更新和警告:
Andrey Volk :“ 除非您知道自己在做什么,否则请勿将sudo systemctl start freeswitch
添加到mod_pgsql
。请使用modules.conf.xml
。如果存在遇到任何问题,请创建一张Jira票。“
toraritte :“ 为什么在pre_load_modules.conf.xml
中加载mod_pgsql
会成为问题?”
Andrey Volk :“ 区别在于Core可能也要使用该数据库。但这是Core,它在任何模块之前都已加载。因此我们需要一个特殊的位置数据库模块(以防万一)是在其他任何模块类型之前加载的;另一方面,如果核心模块未使用该数据库模块,则使用哪个文件都没有关系,应该首先使用。如果是用于LUA,请在LUA之前加载它,但是我们不建议/将其记录下来。
如果无法识别module.conf.xml
,则可能是升级错误的结果。确保所有freeswitch软件包都已升级(包括主软件包)。“