From 9c672a9d76d706fad2ccb22950f4dfc4df83e58d Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Wed, 8 Apr 2026 17:52:53 -0600 Subject: [PATCH] fix(shmigrate): use errors.Is for fs.ErrNotExist compatibility os.IsNotExist does not recognize fs.ErrNotExist when wrapped by an fs.FS implementation. Switch to errors.Is(err, fs.ErrNotExist) so the "file not found" check works for both os.Open and fs.FS.Open. --- database/sqlmigrate/shmigrate/go.mod | 4 +--- database/sqlmigrate/shmigrate/go.sum | 2 ++ database/sqlmigrate/shmigrate/shmigrate.go | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 database/sqlmigrate/shmigrate/go.sum diff --git a/database/sqlmigrate/shmigrate/go.mod b/database/sqlmigrate/shmigrate/go.mod index 0a5b0f1..ac35638 100644 --- a/database/sqlmigrate/shmigrate/go.mod +++ b/database/sqlmigrate/shmigrate/go.mod @@ -2,6 +2,4 @@ module github.com/therootcompany/golib/database/sqlmigrate/shmigrate go 1.26.1 -require github.com/therootcompany/golib/database/sqlmigrate v0.0.0 - -replace github.com/therootcompany/golib/database/sqlmigrate => ../ +require github.com/therootcompany/golib/database/sqlmigrate v1.0.0 diff --git a/database/sqlmigrate/shmigrate/go.sum b/database/sqlmigrate/shmigrate/go.sum new file mode 100644 index 0000000..abba44a --- /dev/null +++ b/database/sqlmigrate/shmigrate/go.sum @@ -0,0 +1,2 @@ +github.com/therootcompany/golib/database/sqlmigrate v1.0.0 h1:vehFGUBdv/su0jDzSNxYN7N7i1KE3l2QJDf4x9LXhwQ= +github.com/therootcompany/golib/database/sqlmigrate v1.0.0/go.mod h1:7PQUjwT78Hx+SftcIKI2PH4zSFlrSO0V9h618PJqC38= diff --git a/database/sqlmigrate/shmigrate/shmigrate.go b/database/sqlmigrate/shmigrate/shmigrate.go index c246aab..54d6ab3 100644 --- a/database/sqlmigrate/shmigrate/shmigrate.go +++ b/database/sqlmigrate/shmigrate/shmigrate.go @@ -6,6 +6,7 @@ package shmigrate import ( "bufio" "context" + "errors" "fmt" "io" "io/fs" @@ -103,7 +104,7 @@ func (r *Migrator) Applied(ctx context.Context) ([]sqlmigrate.AppliedMigration, f, err = os.Open(r.LogPath) } if err != nil { - if os.IsNotExist(err) { + if errors.Is(err, fs.ErrNotExist) { return nil, nil } return nil, fmt.Errorf("reading migrations log: %w", err)