修改包依赖名称
This commit is contained in:
@@ -21,7 +21,7 @@
|
||||
import (
|
||||
"gorm.io/driver/mysql"
|
||||
"gorm.io/gorm"
|
||||
"github.com/go-common/migration"
|
||||
"git.toowon.com/jimmy/go-commom/migration"
|
||||
)
|
||||
|
||||
// 初始化数据库连接
|
||||
@@ -135,7 +135,46 @@ for _, s := range status {
|
||||
}
|
||||
```
|
||||
|
||||
### 6. 生成迁移版本号
|
||||
### 6. 重置迁移
|
||||
|
||||
#### 方式一:仅清空迁移记录(不回滚数据库变更)
|
||||
|
||||
```go
|
||||
// 直接调用(需要传入确认标志)
|
||||
err := migrator.Reset(true)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
// 交互式确认(推荐,会提示警告信息)
|
||||
err := migrator.ResetWithConfirm()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
```
|
||||
|
||||
#### 方式二:回滚所有迁移并清空记录
|
||||
|
||||
```go
|
||||
// 直接调用(需要传入确认标志)
|
||||
err := migrator.ResetAll(true)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
// 交互式确认(推荐,会提示警告信息)
|
||||
err := migrator.ResetAllWithConfirm()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
```
|
||||
|
||||
**注意:**
|
||||
- `Reset()` 仅清空迁移记录表,不会回滚已执行的数据库变更
|
||||
- `ResetAll()` 会回滚所有已应用的迁移(执行Down函数),然后清空记录
|
||||
- 交互式方法会显示详细的警告信息,需要输入确认文本才能执行
|
||||
|
||||
### 7. 生成迁移版本号
|
||||
|
||||
```go
|
||||
// 生成基于时间戳的版本号
|
||||
@@ -194,6 +233,44 @@ type Migration struct {
|
||||
|
||||
**返回:** 迁移状态列表和错误信息
|
||||
|
||||
#### Reset(confirm bool) error
|
||||
|
||||
重置所有迁移记录(仅清空记录表,不回滚数据库变更)。
|
||||
|
||||
**参数:**
|
||||
- `confirm`: 确认标志,必须为true才能执行
|
||||
|
||||
**返回:** 错误信息
|
||||
|
||||
**注意:** 此操作只清空迁移记录,不会回滚已执行的迁移操作。如果需要回滚迁移,请先使用Down方法逐个回滚。
|
||||
|
||||
#### ResetWithConfirm() error
|
||||
|
||||
交互式重置所有迁移记录(带确认提示)。
|
||||
|
||||
**返回:** 错误信息
|
||||
|
||||
**说明:** 会显示警告信息,需要输入"RESET"(全大写)才能执行。
|
||||
|
||||
#### ResetAll(confirm bool) error
|
||||
|
||||
重置所有迁移并回滚所有已应用的迁移。
|
||||
|
||||
**参数:**
|
||||
- `confirm`: 确认标志,必须为true才能执行
|
||||
|
||||
**返回:** 错误信息
|
||||
|
||||
**注意:** 此操作会回滚所有已应用的迁移(执行Down函数),然后清空迁移记录。操作不可逆,请谨慎使用。
|
||||
|
||||
#### ResetAllWithConfirm() error
|
||||
|
||||
交互式重置所有迁移并回滚(带确认提示)。
|
||||
|
||||
**返回:** 错误信息
|
||||
|
||||
**说明:** 会显示警告信息,需要输入"RESET ALL"(全大写)才能执行。
|
||||
|
||||
### MigrationStatus 结构体
|
||||
|
||||
```go
|
||||
@@ -230,11 +307,16 @@ type MigrationStatus struct {
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 迁移版本号必须唯一,建议使用时间戳格式
|
||||
2. 迁移操作在事务中执行,失败会自动回滚
|
||||
3. 迁移记录表会自动创建,无需手动创建
|
||||
4. 如果迁移文件没有对应的down文件,回滚操作会失败
|
||||
5. 迁移按版本号升序执行,确保顺序正确
|
||||
1. **迁移版本号**:必须唯一,建议使用时间戳格式
|
||||
2. **事务支持**:迁移操作在事务中执行,失败会自动回滚
|
||||
3. **自动创建表**:迁移记录表会自动创建,无需手动创建
|
||||
4. **回滚文件**:如果迁移文件没有对应的down文件,回滚操作会失败
|
||||
5. **执行顺序**:迁移按版本号升序执行,确保顺序正确
|
||||
6. **重置操作**:
|
||||
- `Reset()` 只清空迁移记录,不会回滚数据库变更
|
||||
- `ResetAll()` 会回滚所有迁移,操作不可逆
|
||||
- 建议使用交互式方法(`ResetWithConfirm`、`ResetAllWithConfirm`)以确保安全
|
||||
- 在生产环境使用重置功能前,请确保已备份数据库
|
||||
|
||||
## 示例
|
||||
|
||||
|
||||
Reference in New Issue
Block a user