Bladeren bron

doc: 数据库迁移设计

runningwater 5 maanden geleden
bovenliggende
commit
4ac77030ff
2 gewijzigde bestanden met toevoegingen van 54 en 0 verwijderingen
  1. 28 0
      README.md
  2. 26 0
      cliff.toml

+ 28 - 0
README.md

@@ -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  文档
 
 #### 📚 文档更新

+ 26 - 0
cliff.toml

@@ -19,6 +19,32 @@ 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;
+```
+
+迁移的命令如下:\n
+  1. up —— 执行迁移 
+  2. rollback (down) —— 回滚上一步执行的迁移 
+  3. fresh —— 删除所有表,然后执行所有迁移 
+  4. reset —— 回滚所有迁移 
+  5. refresh —— 回滚所有迁移,然后再执行所有迁移
 
 ## 变更日志\n
 本文件记录了本项目的所有重要变更。\n