由于个人精力有限,无法对多种数据库进行测试,v2.6.0 及之后的版本不再支持 SQLite 和 MySQL 数据库,请在升级前将数据迁移到 PostgreSQL。
使用迁移脚本(推荐)
脚本会引导你完成以下三个步骤:
- 启动 PostgreSQL(可选择由脚本自动拉起容器,数据持久化到宿主机目录)
- 迁移数据(通过 pgloader 将数据导入 PostgreSQL)
- 更新配置文件(自动修改
config.yaml 和 docker-compose.yml,原文件备份为 .bak)
前置要求: Python 3、Docker
wget https://raw.githubusercontent.com/dushixiang/next-terminal/refs/heads/master/scripts/migrate.py
python3 migrate.py
按提示选择来源数据库类型(SQLite 或 MySQL),并依次填写连接信息即可。
手动迁移
在 docker-compose.yaml 中增加 postgresql 数据库服务
postgresql:
container_name: postgresql
image: postgres:16.4
environment:
POSTGRES_DB: next-terminal
POSTGRES_USER: next-terminal
POSTGRES_PASSWORD: next-terminal
volumes:
- ./data/postgresql:/var/lib/postgresql/data
restart: always
启动 postgresql 数据库
SQLite -> PostgreSQL
docker run --rm -it \
-v ./data/nt.db:/db/nt.db \
ghcr.io/dimitri/pgloader:latest \
pgloader "sqlite:///db/nt.db" \
"pgsql://PG用户名:PG密码@PG主机/PG数据库名"
MySQL -> PostgreSQL
docker run --rm -it \
ghcr.io/dimitri/pgloader:latest \
pgloader "mysql://MYSQL用户名:MYSQL密码@MYSQL主机/MYSQL数据库名" \
"pgsql://PG用户名:PG密码@PG主机/PG数据库名"
迁移完成后,手动将 config.yaml 中的 Database 块替换为:
Database:
Enabled: true
Type: postgres
Postgres:
Hostname: PG主机
Port: 5432
Username: PG用户名
Password: PG密码
Database: PG数据库名
ShowSql: false
如果是 Mysql 还需要手动 移除 Mysql 数据库服务配置
由于个人精力有限,无法对多种数据库进行测试,v2.6.0 及之后的版本不再支持 SQLite 和 MySQL 数据库,请在升级前将数据迁移到 PostgreSQL。
使用迁移脚本(推荐)
脚本会引导你完成以下三个步骤:
config.yaml和docker-compose.yml,原文件备份为.bak)前置要求: Python 3、Docker
按提示选择来源数据库类型(SQLite 或 MySQL),并依次填写连接信息即可。
手动迁移
在 docker-compose.yaml 中增加 postgresql 数据库服务
启动 postgresql 数据库
SQLite -> PostgreSQL
MySQL -> PostgreSQL
迁移完成后,手动将
config.yaml中的Database块替换为: