Xinwei Xiong d356f7a035
feat(main): 🚀 Database Name Correction and S3 Module Int32 Overflow Fix with Go Routine Integration for Automated Checks and Script Optimization (#1799)
* feat: replace mongo database openIM_v3 to openim_v3

* openim-building-an-efficient-version-control-and-testing-workflow

* feat: complete openim source deployment rpc start timeout

* feat: optimize config

Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com>

* feat: add scripts format

* feat: use scripts format code

* fix cos and minio etc to typecheck

* feat: scripts make verify check ci

* fix: make file verify spelling

* fix: make file verify spelling

* Concurrent Type Checking and Cross-Platform Development in Go

* feat: add copyright make lint and format

* feat: add config examples file

Signed-off-by: Xinwei Xiong <3293172751@qq.com>

* feat: add config examples file

Signed-off-by: Xinwei Xiong <3293172751@qq.com>

---------

Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com>
Signed-off-by: Xinwei Xiong <3293172751@qq.com>
2024-01-26 02:02:53 +00:00

2.4 KiB

OpenIM V2 至 V3 数据迁移指南

该指南提供了从 OpenIM V2 迁移至 V3 的详细步骤。请确保在开始迁移过程之前,熟悉所有步骤,并按照指南准确执行。

1. 数据备份

在开始数据迁移之前,强烈建议备份所有相关的数据以防止任何可能的数据丢失。

2. 迁移 OpenIM MySQL 数据

  • 位置: open-im-server/tools/data-conversion/openim/cmd/conversion-mysql.go
  • 配置 conversion-mysql.go 文件中的数据库信息。
  • 手动创建 V3 版本的数据库,并确保字符集为 utf8mb4
// V2 数据库配置
var (
    usernameV2 = "root"
    passwordV2 = "openIM"
    addrV2     = "127.0.0.1:13306"
    databaseV2 = "openIM_v2"
)

// V3 数据库配置
var (
    usernameV3 = "root"
    passwordV3 = "openIM123"
    addrV3     = "127.0.0.1:13306"
    databaseV3 = "openim_v3"
)

执行数据迁移命令:

make build BINS="conversion-mysql"

启动的二进制在 _output/bin/tools

3. 转换聊天消息(可选)

  • 只支持转换存储在 Kafka 中的消息。
  • 位置: open-im-server/tools/data-conversion/openim/conversion-msg/conversion-msg.go
  • 配置 msg.go 文件中的消息和服务器信息。
var (
	topic       = "ws2ms_chat"      // V2 版本 Kafka 主题
	kafkaAddr   = "127.0.0.1:9092"  // V2 版本 Kafka 地址
	rpcAddr     = "127.0.0.1:10130" // V3 版本 RPC 地址
	adminUserID = "openIM123456"    // V3 版本管理员用户ID
	concurrency = 4                 // 并发数量
)

执行数据迁移命令:

make build BINS="conversion-msg"

4. 转换业务服务器数据

  • 只支持转换存储在 Kafka 中的消息。
  • 位置: open-im-server/tools/data-conversion/chat/cmd/conversion-chat/chat.go
  • 需要手动创建 V3 版本的数据库,并确保字符集为 utf8mb4
  • 配置 main.go 文件中的数据库信息。
// V2 数据库配置
var (
	usernameV2 = "root"
	passwordV2 = "openIM"
	addrV2     = "127.0.0.1:13306"
	databaseV2 = "admin_chat"
)

// V3 数据库配置
var (
	usernameV3 = "root"
	passwordV3 = "openIM123"
	addrV3     = "127.0.0.1:13306"
	databaseV3 = "openim_enterprise"
)

执行数据迁移命令:

make build BINS="conversion-chat"