Fix unique folder migration error (#4170)

This commit is contained in:
WithoutPants 2023-10-04 10:21:31 +11:00 committed by GitHub
parent 0dbe3e6ea8
commit 7894d0fc1f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 0 deletions

View File

@ -2,6 +2,8 @@ package migrations
import (
"context"
"database/sql"
"errors"
"fmt"
"path/filepath"
"strings"
@ -60,6 +62,19 @@ func (m *schema52Migrator) migrate(ctx context.Context) error {
logger.Infof("correcting folder path %s to %s", folderPath, correctPath)
// ensure the correct path is unique
var v int
isEmptyErr := m.db.Get(&v, "SELECT 1 FROM folders WHERE path = ?", correctPath)
if isEmptyErr != nil && !errors.Is(isEmptyErr, sql.ErrNoRows) {
return fmt.Errorf("error checking if correct path %s is unique: %w", correctPath, isEmptyErr)
}
if isEmptyErr == nil {
// correct path is not unique, log and skip
logger.Warnf("correct path %s already exists, skipping...", correctPath)
continue
}
if _, err := m.db.Exec("UPDATE folders SET path = ? WHERE id = ?", correctPath, id); err != nil {
return fmt.Errorf("error updating folder path %s to %s: %w", folderPath, correctPath, err)
}