|
|
|
@ -89,6 +89,8 @@ func Upgrade(old, new string, logger *log.Logger) error {
|
|
|
|
|
return fmt.Errorf("failed to write new snapshot meta file: %s", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Ensure all file handles are closed before any dircetory is moved or removed.
|
|
|
|
|
if err := func() error {
|
|
|
|
|
// Write SQLite data into generation directory, as the base SQLite file.
|
|
|
|
|
newSqliteBasePath := filepath.Join(newGenerationDir, baseSqliteFile)
|
|
|
|
|
newSqliteFd, err := os.Create(newSqliteBasePath)
|
|
|
|
@ -123,6 +125,10 @@ func Upgrade(old, new string, logger *log.Logger) error {
|
|
|
|
|
if !db.IsValidSQLiteFile(newSqliteBasePath) {
|
|
|
|
|
return fmt.Errorf("migrated SQLite file %s is not valid", newSqliteBasePath)
|
|
|
|
|
}
|
|
|
|
|
return nil
|
|
|
|
|
}(); err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Move the upgraded snapshot directory into place.
|
|
|
|
|
if err := os.Rename(newTmpDir, new); err != nil {
|
|
|
|
|