Files
easygoadmin-wiki/EasyGoAdmin_Gin_NaiveVue/zh/deploy/db-migrate.md
T
2026-10-25 17:24:27 +08:00

1.6 KiB
Raw Blame History

11.3 数据库初始化与迁移

:::tip 概述 生产数据库两条路径:全新初始化导入种子脚本;存量搬迁用 migrator 跨库迁移。两者都需在应用启动前完成,并配合连接账号最小权限。 :::

全新初始化

mysql -uroot -p -e "CREATE DATABASE \`easygoadmin.gin.elevue\` DEFAULT CHARSET utf8mb4;"
mysql -uroot -p easygoadmin.gin.elevue < document/mysql/easygoadmin.gin.elevue.sql

25 张 gin_ 表 + 初始化数据(菜单、字典、超管账号等)。其他方言用 document/ 对应目录脚本。

存量搬迁(migrator)

make migrator ARGS="-src-type=mysql -src-database=db1 -dst-type=pgsql -dst-database=db2 ..."

流水线:内省 → 目标方言 DDL → 建表 → 分批搬运 → 序列修复。要点:

  • 迁移期间停写(防搬运窗口数据变动)
  • 大库关注分批内存与锁时间
  • 迁移后核对行数与自增/序列
  • 目标库统一 utf8mb4

应用连接账号

生产不用 root 跑应用:

CREATE USER 'easygoadmin'@'%' IDENTIFIED BY '<强密码>';
GRANT SELECT,INSERT,UPDATE,DELETE ON easygoadmin.\`gin_*\` TO 'easygoadmin'@'%';

最小权限原则:应用只需 DML(钩子做软删,无 DDL 需求)。

变更管理

  • 结构变更走 SQL 脚本 + 评审,不在线上手改
  • 种子脚本仅用于初始化,升级变更用增量脚本
  • 变更前备份(11.9 备份与恢复)

相关