| 196 | } |
| 197 | |
| 198 | func recoverSQLiteDatabase(path string) (string, error) { |
| 199 | corruptPath := fmt.Sprintf("%s.corrupt.%s", path, time.Now().UTC().Format("20060102T150405.000000000Z0700")) |
| 200 | if err := os.Rename(path, corruptPath); err != nil { |
| 201 | return "", err |
| 202 | } |
| 203 | for _, suffix := range []string{sqliteWalValue, sqliteShmValue} { |
| 204 | if err := renameSQLiteCompanion(path+suffix, corruptPath+suffix); err != nil { |
| 205 | return "", err |
| 206 | } |
| 207 | } |
| 208 | return corruptPath, nil |
| 209 | } |
| 210 | |
| 211 | func renameSQLiteCompanion(source string, target string) error { |
| 212 | if err := os.Rename(source, target); err != nil { |