diff --git a/error_translator.go b/error_translator.go index f674cb13d9e09504887fdcdf765896b9b9dbee01..2e4e77333974d372a4817c54269aaeb3bebce0f7 100644 --- a/error_translator.go +++ b/error_translator.go @@ -2,15 +2,20 @@ package sqlite import ( "encoding/json" - - "gorm.io/gorm" + "errors" ) +// ErrDuplicatedKey occurs when there is a unique key constraint violation +var ErrDuplicatedKey = errors.New("duplicated key not allowed") + +// ErrForeignKeyViolated occurs when there is a foreign key constraint violation +var ErrForeignKeyViolated = errors.New("violates foreign key constraint") + // The error codes to map sqlite errors to gorm errors, here is a reference about error codes for sqlite https://www.sqlite.org/rescode.html. var errCodes = map[int]error{ - 1555: gorm.ErrDuplicatedKey, - 2067: gorm.ErrDuplicatedKey, - 787: gorm.ErrForeignKeyViolated, + 1555: ErrDuplicatedKey, + 2067: ErrDuplicatedKey, + 787: ErrForeignKeyViolated, } type ErrMessage struct { diff --git a/go.mod b/go.mod index b0d9f26f7368ef85a6dc71f281ac90791c785ab8..98b36ef54af26cd7e7178633a49dc79722504495 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( gitee.com/zhijingtech/go-sqlite3 v1.14.17 - gorm.io/gorm v1.25.2-0.20230530020048-26663ab9bf55 + gorm.io/gorm v1.24.1 ) require ( diff --git a/go.sum b/go.sum index 748cd3a713719b287a731eb0742f68035105f531..98b8552969a0798f874379a8a57c4382b18c890a 100644 --- a/go.sum +++ b/go.sum @@ -2,7 +2,8 @@ gitee.com/zhijingtech/go-sqlite3 v1.14.17 h1:HJaUC84PvMmMZRvKWZ/B/C93jyyEv0ZC1BV gitee.com/zhijingtech/go-sqlite3 v1.14.17/go.mod h1:yCbxQX6GuO5HOFYcfu7hH3KiW07tgk5kBIcaY2Oyt18= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= +github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= -gorm.io/gorm v1.25.2-0.20230530020048-26663ab9bf55 h1:sC1Xj4TYrLqg1n3AN10w871An7wJM0gzgcm8jkIkECQ= -gorm.io/gorm v1.25.2-0.20230530020048-26663ab9bf55/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= +gorm.io/gorm v1.24.1 h1:CgvzRniUdG67hBAzsxDGOAuq4Te1osVMYsa1eQbd4fs= +gorm.io/gorm v1.24.1/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA=