🚧 Refactor backup service

This commit is contained in:
2025-12-14 23:48:52 +08:00
parent cc4c2189dc
commit 67d35626cb
47 changed files with 2184 additions and 489 deletions

View File

@@ -17,6 +17,14 @@ func NowString() string {
return time.Now().Format(TimeFormat)
}
// skipAutoUpdateKey context key for skipping auto update
type skipAutoUpdateKey struct{}
// SkipAutoUpdate 返回跳过自动更新 updated_at 的 context
func SkipAutoUpdate(ctx context.Context) context.Context {
return context.WithValue(ctx, skipAutoUpdateKey{}, true)
}
// TimeMixin 时间字段混入
// created_at: 创建时间
// updated_at: 更新时间(自动更新)
@@ -44,6 +52,10 @@ func (TimeMixin) Hooks() []ent.Hook {
return []ent.Hook{
func(next ent.Mutator) ent.Mutator {
return ent.MutateFunc(func(ctx context.Context, m ent.Mutation) (ent.Value, error) {
// 跳过自动更新(用于同步导入场景)
if ctx.Value(skipAutoUpdateKey{}) != nil {
return next.Mutate(ctx, m)
}
// 只在更新操作时设置 updated_at
if m.Op().Is(ent.OpUpdate | ent.OpUpdateOne) {
if setter, ok := m.(interface{ SetUpdatedAt(string) }); ok {