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

50 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 11.3 数据库初始化与迁移
:::tip 概述
生产数据库两条路径:**全新初始化**导入种子脚本;**存量搬迁**用 migrator 跨库迁移。两者都需在应用启动前完成,并配合连接账号最小权限。
:::
## 全新初始化
```bash
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)
```bash
make migrator ARGS="-src-type=mysql -src-database=db1 -dst-type=pgsql -dst-database=db2 ..."
```
流水线:内省 → 目标方言 DDL → 建表 → 分批搬运 → 序列修复。要点:
- 迁移期间**停写**(防搬运窗口数据变动)
- 大库关注分批内存与锁时间
- 迁移后核对行数与自增/序列
- 目标库统一 utf8mb4
## 应用连接账号
生产不用 root 跑应用:
```sql
CREATE USER 'easygoadmin'@'%' IDENTIFIED BY '<强密码>';
GRANT SELECT,INSERT,UPDATE,DELETE ON easygoadmin.\`gin_*\` TO 'easygoadmin'@'%';
```
最小权限原则:应用只需 DML(钩子做软删,无 DDL 需求)。
## 变更管理
- 结构变更走 SQL 脚本 + 评审,不在线上手改
- 种子脚本仅用于初始化,升级变更用增量脚本
- 变更前备份([11.9 备份与恢复](/zh/deploy/backup.html))
## 相关
- [7.6 数据库迁移工具](/zh/tools/db-migrate.html)
- [4.10 数据库设计](/zh/architecture/database-design.html)