Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 18 additions & 18 deletions adapter.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@ import (
"sync"
"time"

"github.com/casbin/casbin/v3"
"github.com/casbin/casbin/v3/model"
"github.com/casbin/casbin/v3/persist"
"github.com/glebarez/sqlite"
"github.com/casbin/casbin/v2"
"github.com/casbin/casbin/v2/model"
"github.com/casbin/casbin/v2/persist"
"github.com/pkg/errors"
"gorm.io/driver/mysql"
"gorm.io/driver/postgres"
"gorm.io/driver/sqlite"
"gorm.io/driver/sqlserver"
"gorm.io/gorm"
"gorm.io/gorm/clause"
Expand Down Expand Up @@ -326,16 +326,17 @@ func openDBConnection(driverName, dataSourceName string) (*gorm.DB, error) {
config := &gorm.Config{
Logger: logger.Default.LogMode(logger.Silent),
}
if driverName == "postgres" {
switch driverName {
case "postgres":
db, err = gorm.Open(postgres.Open(dataSourceName), config)
} else if driverName == "mysql" {
case "mysql":
db, err = gorm.Open(mysql.Open(dataSourceName), config)
} else if driverName == "sqlserver" {
case "sqlserver":
db, err = gorm.Open(sqlserver.Open(dataSourceName), config)
} else if driverName == "sqlite3" {
case "sqlite":
db, err = gorm.Open(sqlite.Open(dataSourceName), config)
} else {
return nil, errors.New("Database dialect '" + driverName + "' is not supported. Supported databases are postgres, mysql, sqlserver and sqlite3")
default:
return nil, errors.New("Database dialect '" + driverName + "' is not supported. Supported databases are postgres, mysql, sqlserver and sqlite")
}
if err != nil {
return nil, err
Expand All @@ -356,7 +357,7 @@ func (a *Adapter) createDatabase() error {
return nil
}
}
} else if a.driverName != "sqlite3" && a.driverName != "sqlserver" {
} else if a.driverName != "sqlite" && a.driverName != "sqlserver" {
err = db.Exec("CREATE DATABASE IF NOT EXISTS " + a.databaseName).Error
}
if err != nil {
Expand All @@ -378,13 +379,14 @@ func (a *Adapter) Open() error {
if err = a.createDatabase(); err != nil {
return err
}
if a.driverName == "postgres" {
switch a.driverName {
case "postgres":
db, err = openDBConnection(a.driverName, a.dataSourceName+" dbname="+a.databaseName)
} else if a.driverName == "sqlite3" {
case "sqlite":
db, err = openDBConnection(a.driverName, a.dataSourceName)
} else if a.driverName == "sqlserver" {
case "sqlserver":
db, err = openDBConnection(a.driverName, a.dataSourceName+"?database="+a.databaseName)
} else {
default:
db, err = openDBConnection(a.driverName, a.dataSourceName+a.databaseName)
}
if err != nil {
Expand Down Expand Up @@ -468,9 +470,7 @@ func (a *Adapter) dropTable() error {
func (a *Adapter) truncateTable() error {
var sql string
switch a.db.Config.Name() {
case sqlite.DriverName:
sql = fmt.Sprintf("delete from %s", a.getFullTableName())
case "sqlite3":
case "sqlite":
sql = fmt.Sprintf("delete from %s", a.getFullTableName())
case "postgres":
sql = fmt.Sprintf("truncate table %s RESTART IDENTITY", a.getFullTableName())
Expand Down
13 changes: 7 additions & 6 deletions adapter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,17 @@ import (
"testing"
"time"

"github.com/casbin/casbin/v3"
"github.com/casbin/casbin/v3/util"
"github.com/glebarez/sqlite"
"github.com/casbin/casbin/v2"
"github.com/casbin/casbin/v2/util"

_ "github.com/go-sql-driver/mysql"
_ "github.com/lib/pq"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"golang.org/x/sync/errgroup"
"gorm.io/driver/mysql"
"gorm.io/driver/postgres"
"gorm.io/driver/sqlite"
"gorm.io/driver/sqlserver"
"gorm.io/gorm"
"gorm.io/gorm/logger"
Expand Down Expand Up @@ -268,7 +269,7 @@ func initAdapterWithGormInstanceByPrefixAndName(t *testing.T, db *gorm.DB, prefi
}

func TestNilField(t *testing.T) {
a, err := NewAdapter("sqlite3", "test.db")
a, err := NewAdapter("sqlite", "test.db")
assert.Nil(t, err)
defer os.Remove("test.db")

Expand Down Expand Up @@ -542,7 +543,7 @@ func TestAdapters(t *testing.T) {
testAutoSave(t, a)
testSaveLoad(t, a)

a = initAdapter(t, "sqlite3", "casbin.db")
a = initAdapter(t, "sqlite", "casbin.db")
testAutoSave(t, a)
testSaveLoad(t, a)

Expand Down Expand Up @@ -667,7 +668,7 @@ func TestAdapters(t *testing.T) {
testUpdatePolicies(t, a)
testUpdateFilteredPolicies(t, a)

a = initAdapter(t, "sqlite3", "casbin.db")
a = initAdapter(t, "sqlite", "casbin.db")
testUpdatePolicy(t, a)
testUpdatePolicies(t, a)

Expand Down
30 changes: 10 additions & 20 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,29 +1,27 @@
module github.com/casbin/gorm-adapter/v3
module github.com/maestrohub-labs/casbin-gorm-adapter/v4

go 1.24.0
go 1.25.0

require (
github.com/casbin/casbin/v3 v3.8.1
github.com/glebarez/sqlite v1.11.0
github.com/casbin/casbin/v2 v2.123.0
github.com/go-sql-driver/mysql v1.9.3
github.com/lib/pq v1.10.2
github.com/lib/pq v1.11.2
github.com/pkg/errors v0.9.1
github.com/stretchr/testify v1.11.1
golang.org/x/sync v0.19.0
gorm.io/driver/mysql v1.6.0
gorm.io/driver/postgres v1.6.0
gorm.io/driver/sqlite v1.6.0
gorm.io/driver/sqlserver v1.6.3
gorm.io/gorm v1.31.1
gorm.io/plugin/dbresolver v1.6.2
)

require (
filippo.io/edwards25519 v1.1.0 // indirect
github.com/bmatcuk/doublestar/v4 v4.9.1 // indirect
github.com/bmatcuk/doublestar/v4 v4.10.0 // indirect
github.com/casbin/govaluate v1.10.0 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/glebarez/go-sqlite v1.22.0 // indirect
github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect
github.com/golang-sql/sqlexp v0.1.0 // indirect
github.com/google/uuid v1.6.0 // indirect
Expand All @@ -33,19 +31,11 @@ require (
github.com/jackc/puddle/v2 v2.2.2 // indirect
github.com/jinzhu/inflection v1.0.0 // indirect
github.com/jinzhu/now v1.1.5 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/microsoft/go-mssqldb v1.9.5 // indirect
github.com/ncruces/go-strftime v1.0.0 // indirect
github.com/mattn/go-sqlite3 v1.14.34 // indirect
github.com/microsoft/go-mssqldb v1.9.6 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
github.com/shopspring/decimal v1.4.0 // indirect
golang.org/x/crypto v0.46.0 // indirect
golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93 // indirect
golang.org/x/sys v0.39.0 // indirect
golang.org/x/text v0.32.0 // indirect
golang.org/x/crypto v0.48.0 // indirect
golang.org/x/text v0.34.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
modernc.org/libc v1.67.4 // indirect
modernc.org/mathutil v1.7.1 // indirect
modernc.org/memory v1.11.0 // indirect
modernc.org/sqlite v1.42.2 // indirect
)
Loading
Loading