MongoosIM이 postgres 데이터베이스에서 인증할 수 없습니다.

MongoosIM이 postgres 데이터베이스에서 인증할 수 없습니다.

테스트를 위해 VM에 MongooseIM을 설치했습니다. 외부 postgres 데이터베이스에서 사용자 인증을 수행하려고 합니다. 다음을 사용하여 새 사용자를 등록할 때

mongooseimctl register user host password 

내 데이터베이스의 사용자 테이블에 새 행을 추가합니다. 그러나 xmpp 클라이언트를 사용하여 연결하려고 하면 오류가 발생합니다.

{message,<<"column \"pass_details\" does not     exist">>}

다음에서 스키마를 다운로드했습니다.https://raw.githubusercontent.com/processone/ejabberd/master/sql/pg.sql사용자 테이블에 "pass_details" 열이 없습니다. MongooseIm을 위한 스키마를 찾으려고 했지만 아무것도 찾지 못했습니다. MongoosIM에 대한 다른 스키마가 있습니까? 아니면 pass_details 열을 추가하여 문제를 해결할 수 있나요? 그러면 열의 값은 어떻게 되어야 합니까? 아니면 이 문제를 해결할 다른 방법이 있나요?

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">>,<<"');">>]

답변1

다운로드한 스키마는 최신 버전의 ejabberd용입니다. 다운로드한 스키마와 함께 ejabberd 최신 버전을 사용하는 것이 좋습니다.

관련 정보