one-api原版数据迁移到MartialBE/one-api的工具。
1.2K
这是一个songquanpeng/one-api数据迁移到MartialBE/one-api的工具。支持的数据库包括 MySQL、Postgres 和 SQLite。
abilities、channels、logs、options、redemptions、tokens、users首先,需要通过环境变量配置旧数据库和新数据库的连接字符串:
ONEAPI_OLD_SQL_DSN: songquanpeng/one-api数据库的连接字符串ONEAPI_NEW_SQL_DSN: MartialBE/one-api数据库的连接字符串例如,对于 MySQL 数据库,可以设置以下环境变量:
export ONEAPI_OLD_SQL_DSN="mysql://user:password@tcp(oldhost:3306)/olddb"
export ONEAPI_NEW_SQL_DSN="mysql://user:password@tcp(newhost:3306)/newdb"
例如,对于 PostgreSQL 数据库,可以设置以下环境变量:
export ONEAPI_OLD_SQL_DSN="postgres://user:password@tcp(oldhost:3306)/olddb"
export ONEAPI_NEW_SQL_DSN="postgres://user:password@tcp(newhost:3306)/newdb"
例如,对于 Sqlite 数据库,可以设置以下环境变量:
export ONEAPI_OLD_SQL_DSN="旧数据库数据文件绝对地址" // 比如 /olddb.sqlite3 视你项目具体实施情况而定
export ONEAPI_NEW_SQL_DSN="新数据库数据文件绝对地址" // 比如 /newdb.sqlite3 视你项目具体实施情况而定
我们提供了一个 Docker 镜像 zerodeng/oneapi-dbtransfer:latest,可以直接使用该镜像进行数据迁移。
docker run --rm \
-e ONEAPI_OLD_SQL_DSN="mysql://user:password@tcp(oldhost:3306)/olddb" \
-e ONEAPI_NEW_SQL_DSN="mysql://user:password@tcp(newhost:3306)/newdb" \
zerodeng/oneapi-dbtransfer:latest
我们也提供了一个 Docker Compose 配置文件,您可以使用 Docker Compose 来运行数据库迁移工具。
docker-compose.yml 文件将以下内容复制到 docker-compose.yml 文件中:
version: '3.8'
services:
dbtransfer:
image: zerodeng/oneapi-dbtransfer:latest
environment:
ONEAPI_OLD_SQL_DSN: "mysql://user:password@tcp(oldhost:3306)/olddb"
ONEAPI_NEW_SQL_DSN: "mysql://user:password@tcp(newhost:3306)/newdb"
在终端中导航到 docker-compose.yml 文件所在的目录,然后运行以下命令启动服务:
docker-compose up
数据迁移完成后,您可以使用以下命令停止并移除服务:
docker-compose down
我们也提供了二进制程序,您可以从发布页面下载并运行。
请下载适合您操作系统的版本,并赋予执行权限。
chmod +x oneapi-dbtransfer-对应系统版本
以下示例仅供,具体以对应平台为准
./db-transfer-linux-amd64 mysql://user:password@tcp(oldhost:3306)/olddb user:password@tcp(oldhost:3306)/newdb
./db-transfer-windows-amd64.exe mysql://user:password@tcp(oldhost:3306)/olddb user:password@tcp(oldhost:3306)/newdb
./db-transfer-darwin-amd64 mysql://user:password@tcp(oldhost:3306)/olddb user:password@tcp(oldhost:3306)/newdb

|分割,但是两个项目里面密钥填写顺序不一样。A: 请查看控制台输出的错误信息,根据错误信息进行调试。如果遇到无法解决的问题,请提交 issue 并附上错误信息。
A: 工具会自动检测旧库中存在但新库中缺少的字段,并在控制台输出警告信息。这些字段的数据将不会被迁移。
A: 迁移速度受限于数据库性能和网络带宽。可以尝试优化数据库配置和网络环境以提高迁移速度。
⚠️数据无价,数据迁移操作需要您有一定的技术基础并提前对相关重要数据进行备份。本程序不对您的数据安全负责。
欢迎提交 issue 和 pull request 来改进本项目。
如果你觉得本项目对您有帮助,可以请作者喝杯咖啡!🎉

Content type
Image
Digest
sha256:6671d6fc9…
Size
10.5 MB
Last updated
about 2 years ago
docker pull zerodeng/oneapi-dbtransfer