Instalei o MongooseIM em uma VM para teste. Estou tentando fazer a autenticação do usuário em um banco de dados postgres externo. Quando eu registro um novo usuário usando
mongooseimctl register user host password
Ele adiciona uma nova linha na tabela de usuários do meu banco de dados. No entanto, quando tento me conectar usando clientes xmpp, recebo um erro:
{message,<<"column \"pass_details\" does not exist">>}
Eu baixei o esquema dehttps://raw.githubusercontent.com/processone/ejabberd/master/sql/pg.sqle não possui uma coluna "pass_details" em sua tabela de usuários. Tentei encontrar um esquema específico para MongooseIm, mas não encontrei nenhum. Existe um esquema diferente para o MongoosIM? ou posso consertar apenas adicionando a coluna pass_details? qual deve ser o valor da coluna então? ou existem outras maneiras de corrigir isso?
2015-02-25 15:21:07.684 [debug] <0.1802.0>@ejabberd_commands:execute_command2:339 Executing command ejabberd_admin:register with Args=[<<"bob">>,<<"localhost">>,<<"PASSWORD">>]
2015-02-25 15:21:07.685 [debug] <0.1627.0>@ejabberd_odbc:sql_query_internal:574 Postres, Send query
[<<"select password, pass_details from users where username='">>,<<"bob">>,<<"';">>]
2015-02-25 15:21:07.695 [error] <0.1802.0>@ejabberd_auth:is_user_exists:346 The authentication module ejabberd_auth_odbc returned an error
when checking user <<"bob">> in server <<"localhost">>
Error message: [{severity,'ERROR'},{code,<<"42703">>},{message,<<"column \"pass_details\" does not exist">>},{position,18},{file,<<"parse_relation.c">>},{line,2655},{routine,<<"errorMissingColumn">>}]
2015-02-25 15:21:07.696 [debug] <0.1624.0>@ejabberd_odbc:sql_query_internal:574 Postres, Send query
[<<"insert into users(username, password) values ('">>,<<"bob">>,<<"', '">>,<<"PASSWORD">>,<<"');">>]
Responder1
O esquema que você baixou é para a versão mais recente do ejabberd. Eu sugiro que você use a versão mais recente do ejabberd com o esquema que você baixou.