I am migrating my ejabberd server to a new server. I am keeping the same hostname so don't need to do the host name conversion. On the 2.0.5-1.1 machine I did a
ejabberdctl backup /tmp/ejab1.backup
I then sent that file to my new server running 2.1.5-3+squeeze1build0.11
and got the disco_publish table error - which I tried the workaround, but then got a
{aborted,{no_exists,http_poll}} error. Any ideas how to get past this or a better way to copy my database from the old 2.0 server to the new 2.1 server?
root@jab:/etc/ejabberd# ejabberdctl restore ejab1.backup
Can't restore backup from "/var/lib/ejabberd/ejab1.backup" at node ejabberd@jab: Table disco_publish does not exist.
root@jab:/etc/ejabberd# ejabberdctl debug
Attaching Erlang shell to node ejabberd@jab.
To detach it, press: Ctrl+G, q, Return
Erlang R13B03 (erts-5.7.4) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.7.4 (abort with ^G)
(ejabberd@jab)1> mnesia:restore("/etc/ejabberd/jab1/ejab1.backup",[{skip_tables,[disco_publish]}]).
{aborted,{no_exists,http_poll}}
(ejabberd@jab)2>
User switch command
--> q
Related:
Related: http://www.ejabberd.im/node/4867
This was fixed in ejabberd 2.1.8
Instead of
mnesia:restore("/etc/ejabberd/jab1/ejab1.backup",[{skip_tables,[disco_publish]}]).
You can try:
mnesia:restore("/etc/ejabberd/jab1/ejab1.backup",[{skip_tables,[disco_publish, http_poll]}]).