|
|
@@ -9,6 +9,33 @@ Web 服务功能会封装到子命令 serve 中,命令行功能会封装到子
|
|
|
3. seed 数据填充
|
|
|
4. migrate 数据库迁移
|
|
|
5. cache 缓存处理
|
|
|
+6. 数据库迁移
|
|
|
+
|
|
|
+## 数据库迁移
|
|
|
+
|
|
|
+使用 go-migrate 进行数据库迁移,支持多种数据库。
|
|
|
+数据库迁移文件位于 database/migrations 目录下,文件名为 timestamp_xxx.up.sql 或 timestamp_xxx.down.sql。
|
|
|
+timestamp 为时间戳, xxx 为迁移的名称, up 为执行迁移, down 为回滚迁移。
|
|
|
+例如: 2024_04_17_150000_create_migrations_table.up.sql
|
|
|
+
|
|
|
+```sql
|
|
|
+-- 表结构
|
|
|
+CREATE TABLE `migrations` (
|
|
|
+`id` bigint unsigned NOT NULL AUTO_INCREMENT,
|
|
|
+`migration` varchar(255) NOT NULL,
|
|
|
+`batch` bigint DEFAULT NULL,
|
|
|
+PRIMARY KEY (`id`),
|
|
|
+UNIQUE KEY `migration` (`migration`)
|
|
|
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4;
|
|
|
+```
|
|
|
+
|
|
|
+迁移的命令如下:
|
|
|
+
|
|
|
+1. up —— 执行迁移
|
|
|
+2. rollback (down) —— 回滚上一步执行的迁移
|
|
|
+3. fresh —— 删除所有表,然后执行所有迁移
|
|
|
+4. reset —— 回滚所有迁移
|
|
|
+5. refresh —— 回滚所有迁移,然后再执行所有迁移
|
|
|
|
|
|
## 变更日志
|
|
|
|
|
|
@@ -32,6 +59,7 @@ Web 服务功能会封装到子命令 serve 中,命令行功能会封装到子
|
|
|
|
|
|
#### 💼 其他
|
|
|
|
|
|
+- 数据库迁移设计
|
|
|
- 更新 readme.md 文档
|
|
|
|
|
|
#### 📚 文档更新
|