diff --git a/db/migration/20230112111457_add_album_paths.go b/db/migration/20230112111457_add_album_paths.go
index baebae696..4f32106e4 100644
--- a/db/migration/20230112111457_add_album_paths.go
+++ b/db/migration/20230112111457_add_album_paths.go
@@ -59,7 +59,7 @@ func upAddAlbumPathsDirs(filePaths string) string {
 	}
 	slices.Sort(dirs)
 	dirs = slices.Compact(dirs)
-	return strings.Join(dirs, consts.Zwsp)
+	return strings.Join(dirs, string(filepath.ListSeparator))
 }
 
 func downAddAlbumPaths(tx *sql.Tx) error {
diff --git a/db/migration/20230202143713_change_path_list_separator.go b/db/migration/20230202143713_change_path_list_separator.go
new file mode 100644
index 000000000..fc5cf1f7b
--- /dev/null
+++ b/db/migration/20230202143713_change_path_list_separator.go
@@ -0,0 +1,62 @@
+package migrations
+
+import (
+	"database/sql"
+	"path/filepath"
+	"strings"
+
+	"github.com/navidrome/navidrome/consts"
+	"github.com/navidrome/navidrome/log"
+	"github.com/pressly/goose"
+	"golang.org/x/exp/slices"
+)
+
+func init() {
+	goose.AddMigration(upChangePathListSeparator, downChangePathListSeparator)
+}
+
+func upChangePathListSeparator(tx *sql.Tx) error {
+	//nolint:gosec
+	rows, err := tx.Query(`
+	select album_id, group_concat(path, '` + consts.Zwsp + `') from media_file group by album_id
+	`)
+	if err != nil {
+		return err
+	}
+
+	stmt, err := tx.Prepare("update album set paths = ? where id = ?")
+	if err != nil {
+		return err
+	}
+
+	var id, filePaths string
+	for rows.Next() {
+		err = rows.Scan(&id, &filePaths)
+		if err != nil {
+			return err
+		}
+
+		paths := upChangePathListSeparatorDirs(filePaths)
+		_, err = stmt.Exec(paths, id)
+		if err != nil {
+			log.Error("Error updating album's paths", "paths", paths, "id", id, err)
+		}
+	}
+	return rows.Err()
+}
+
+func upChangePathListSeparatorDirs(filePaths string) string {
+	allPaths := strings.Split(filePaths, consts.Zwsp)
+	var dirs []string
+	for _, p := range allPaths {
+		dir, _ := filepath.Split(p)
+		dirs = append(dirs, filepath.Clean(dir))
+	}
+	slices.Sort(dirs)
+	dirs = slices.Compact(dirs)
+	return strings.Join(dirs, consts.Zwsp)
+}
+
+func downChangePathListSeparator(tx *sql.Tx) error {
+	return nil
+}