Skip to content

数据库迁移说明

数据库操作为高危操作,操作前请先备份好数据库

数据库操作为高危操作,操作前请先备份好数据库

数据库操作为高危操作,操作前请先备份好数据库

目前仅支持sqlite和mysql相互转换,不支持sqlite到sqlite,或者mysql到mysql

备份前的准备

操作数据库前,先停止服务端,避免备份时,依然在操作数据,导致数据出现不一致的情况

新的数据库最好为空数据库

先补全sqlite和mysql的配置

sqlite需要配置好sqlite.file文件地址

mysql配置好各项连接信息

yaml
# 后台管理监听的地址
address: 0.0.0.0:8080
auth-key: 44v7eu1y3afpmasf
auth-exp: 168h0m0s
auth-renew: 2h0m0s
db-type: sqlite
sqlite:
    file: /usr/local/gostc-admin/data/data.db
    log-level: info
mysql:
    host: 127.0.0.1
    port: 3306
    db: table_name
    user: root
    pwd: root
    prefix: gostc_
    extend: ?timeout=3s&readTimeout=3s&writeTimeout=3s&parseTime=true&loc=Local&charset=utf8mb4,utf8
    log-level: info

备份命令

shell
./server migrate sourceDbType targetDbType

migrate固定参数

sourceDbType旧数据库 sqlite/mysql

targetDbType新数据库 sqlite/mysql

运行命令后,程序会根据参数从配置文件加载旧数据库的配置和新数据库的配置并连接,然后从旧数据库查询数据批量迁移到新的数据库中,运行完成后,修改配置文件的db-type字段为新数据库的类型切换至新数据库,启动服务即可完成

当sourceDbType为sqlite,targetDbType为mysql时,数据会从sqlite迁移至mysql,反之从mysql迁移至sqlite