2
2
mirror of https://github.com/octoleo/restic.git synced 2024-11-10 15:21:03 +00:00

Allow migrate to run althoug check failed

This commit is contained in:
Alexander Neumann 2017-07-02 10:29:41 +02:00
parent e7577d7bb4
commit 28a4a35625
2 changed files with 14 additions and 2 deletions

View File

@ -21,12 +21,15 @@ name is explicitely given, a list of migrations that can be applied is printed.
// MigrateOptions bundles all options for the 'check' command.
type MigrateOptions struct {
Force bool
}
var migrateOptions MigrateOptions
func init() {
cmdRoot.AddCommand(cmdMigrate)
f := cmdMigrate.Flags()
f.BoolVarP(&migrateOptions.Force, "force", "f", false, `apply a migration a second time`)
}
func checkMigrations(opts MigrateOptions, gopts GlobalOptions, repo restic.Repository) error {
@ -59,10 +62,14 @@ func applyMigrations(opts MigrateOptions, gopts GlobalOptions, repo restic.Repos
}
if !ok {
Warnf("migration %v cannot be applied: check failed\n", m.Name())
if !opts.Force {
Warnf("migration %v cannot be applied: check failed\nIf you want to apply this migration anyway, re-run with option --force\n", m.Name())
continue
}
Warnf("check for migration %v failed, continuing anyway\n", m.Name())
}
Printf("applying migration %v...\n", m.Name())
if err = m.Apply(ctx, repo); err != nil {
Warnf("migration %v failed: %v\n", m.Name(), err)

View File

@ -453,6 +453,11 @@ func (be *Backend) Rename(h restic.Handle, l backend.Layout) error {
oldname := be.Filename(h)
newname := l.Filename(h)
if oldname == newname {
debug.Log(" %v is already renamed", newname)
return nil
}
debug.Log(" %v -> %v", oldname, newname)
coreClient := minio.Core{Client: be.client}