2023-06-06 12:37:54 +01:00
|
|
|
package gormlite
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"errors"
|
|
|
|
|
|
|
|
|
|
"gorm.io/gorm"
|
2024-10-18 12:20:32 +01:00
|
|
|
|
|
|
|
|
"github.com/ncruces/go-sqlite3"
|
2023-06-06 12:37:54 +01:00
|
|
|
)
|
|
|
|
|
|
2025-01-07 12:29:16 +00:00
|
|
|
// Translate it will translate the error to native gorm errors.
|
2023-10-13 00:42:06 +01:00
|
|
|
func (_Dialector) Translate(err error) error {
|
2023-06-07 18:03:27 +01:00
|
|
|
switch {
|
|
|
|
|
case
|
|
|
|
|
errors.Is(err, sqlite3.CONSTRAINT_UNIQUE),
|
|
|
|
|
errors.Is(err, sqlite3.CONSTRAINT_PRIMARYKEY):
|
2023-06-06 12:37:54 +01:00
|
|
|
return gorm.ErrDuplicatedKey
|
2023-06-07 18:03:27 +01:00
|
|
|
case
|
|
|
|
|
errors.Is(err, sqlite3.CONSTRAINT_FOREIGNKEY):
|
2023-06-29 20:06:56 +01:00
|
|
|
return gorm.ErrForeignKeyViolated
|
2023-06-06 12:37:54 +01:00
|
|
|
}
|
|
|
|
|
return err
|
|
|
|
|
}
|