lib/db, lib/model: Allow needing invalid files (fixes #7474) (#7476)

This commit is contained in:
Simon Frei
2021-03-15 07:58:01 +01:00
committed by GitHub
parent bb886868d2
commit 273ee09925
8 changed files with 125 additions and 46 deletions
+12 -1
View File
@@ -21,7 +21,7 @@ import (
// do not put restrictions on downgrades (e.g. for repairs after a bugfix).
const (
dbVersion = 14
dbMigrationVersion = 15
dbMigrationVersion = 16
dbMinSyncthingVersion = "v1.9.0"
)
@@ -104,6 +104,7 @@ func (db *schemaUpdater) updateSchema() error {
{13, 13, "v1.7.0", db.updateSchemaTo13},
{14, 14, "v1.9.0", db.updateSchemaTo14},
{14, 15, "v1.9.0", db.migration15},
{14, 16, "v1.9.0", db.checkRepairMigration},
}
for _, m := range migrations {
@@ -782,6 +783,16 @@ func (db *schemaUpdater) migration15(_ int) error {
return nil
}
func (db *schemaUpdater) checkRepairMigration(_ int) error {
for _, folder := range db.ListFolders() {
_, err := db.getMetaAndCheckGCLocked(folder)
if err != nil {
return err
}
}
return nil
}
func (db *schemaUpdater) rewriteGlobals(t readWriteTransaction) error {
it, err := t.NewPrefixIterator([]byte{KeyTypeGlobal})
if err != nil {