ejabberd 将用户从一个域迁移到另一个域
ejabberd migrate users from one domain to other domain
我有 ejabberd 21 与超过一百万的用户一起工作,他们的聊天记录。我想根据新的业务需求将所有用户迁移到新的域/主机名。什么是合适的方法?
ejabberd 中没有这样的工具,而且我不知道有任何其他外部工具可以做到这一点。但是你可以手动完成。
如果您使用 SQL 数据库进行身份验证和存储名册、离线消息等...
- 停止 ejabberd,
- 转储 SQL 到文本文件,
- 用该文本文件中的新主机名替换一个主机名,
- 然后创建一个新的数据库,配置ejabberd来使用它
- 并导入新的文本文件。
或者您有能力直接在 SQL 中执行此替换。
如果你使用的是内部Mnesia数据库,方法类似:
- 使用“ejabberdctl dump”或使用 ejabberd WebAdmin
将 mnesia 数据库转储到文本文件
- 用该文本文件中的新主机名替换旧主机名
- 停止 ejabberd
- 移动到 mnesia spool 目录的安全位置
- 启动 ejabberd。它将生成一个新的空 mnesia 数据库
- 使用“ejabberdctl load”加载新的文本文件。或注册一个新帐户,在 ejabberd.yml 中授予管理员权限,以便您可以使用它登录 WebAdmin 以加载文本文件。
我有 ejabberd 21 与超过一百万的用户一起工作,他们的聊天记录。我想根据新的业务需求将所有用户迁移到新的域/主机名。什么是合适的方法?
ejabberd 中没有这样的工具,而且我不知道有任何其他外部工具可以做到这一点。但是你可以手动完成。
如果您使用 SQL 数据库进行身份验证和存储名册、离线消息等...
- 停止 ejabberd,
- 转储 SQL 到文本文件,
- 用该文本文件中的新主机名替换一个主机名,
- 然后创建一个新的数据库,配置ejabberd来使用它
- 并导入新的文本文件。
或者您有能力直接在 SQL 中执行此替换。
如果你使用的是内部Mnesia数据库,方法类似:
- 使用“ejabberdctl dump”或使用 ejabberd WebAdmin 将 mnesia 数据库转储到文本文件
- 用该文本文件中的新主机名替换旧主机名
- 停止 ejabberd
- 移动到 mnesia spool 目录的安全位置
- 启动 ejabberd。它将生成一个新的空 mnesia 数据库
- 使用“ejabberdctl load”加载新的文本文件。或注册一个新帐户,在 ejabberd.yml 中授予管理员权限,以便您可以使用它登录 WebAdmin 以加载文本文件。