Skip to content

Commit eb29258

Browse files
committed
修改gorm-oracle的驱动包为go-ora,不再依赖cgo和oracle client
1 parent 1e3c968 commit eb29258

File tree

3 files changed

+12
-14
lines changed

3 files changed

+12
-14
lines changed

server/config/gorm_oracle.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
11
package config
22

3+
import (
4+
"fmt"
5+
"net"
6+
"net/url"
7+
)
8+
39
type Oracle struct {
410
GeneralDB `yaml:",inline" mapstructure:",squash"`
511
}
612

713
func (m *Oracle) Dsn() string {
8-
return "oracle://" + m.Username + ":" + m.Password + "@" + m.Path + ":" + m.Port + "/" + m.Dbname + "?" + m.Config
14+
dsn := fmt.Sprintf("oracle://%s:%s@%s/%s?%s", url.PathEscape(m.Username), url.PathEscape(m.Password),
15+
net.JoinHostPort(m.Path, m.Port), url.PathEscape(m.Dbname), m.Config)
16+
return dsn
917

1018
}

server/initialize/gorm_oracle.go

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
11
package initialize
22

33
import (
4-
//"github.com/dzwvip/oracle"
4+
oracle "github.com/dzwvip/gorm-oracle"
55
"github.com/flipped-aurora/gin-vue-admin/server/config"
66
"github.com/flipped-aurora/gin-vue-admin/server/global"
77
"github.com/flipped-aurora/gin-vue-admin/server/initialize/internal"
8-
9-
//_ "github.com/godror/godror"
10-
"gorm.io/driver/mysql"
118
"gorm.io/gorm"
129
)
1310

1411
// GormOracle 初始化oracle数据库
15-
// 如果需要Oracle库 放开import里的注释 把下方 mysql.Config 改为 oracle.Config ; mysql.New 改为 oracle.New
1612
func GormOracle() *gorm.DB {
1713
m := global.GVA_CONFIG.Oracle
1814
return initOracleDatabase(m)
@@ -28,13 +24,7 @@ func initOracleDatabase(m config.Oracle) *gorm.DB {
2824
if m.Dbname == "" {
2925
return nil
3026
}
31-
32-
oracleConfig := mysql.Config{
33-
DSN: m.Dsn(), // DSN data source name
34-
DefaultStringSize: 191, // string 类型字段的默认长度
35-
}
36-
37-
if db, err := gorm.Open(mysql.New(oracleConfig), internal.Gorm.Config(m.Prefix, m.Singular)); err != nil {
27+
if db, err := gorm.Open(oracle.Open(m.Dsn()), internal.Gorm.Config(m.Prefix, m.Singular)); err != nil {
3828
panic(err)
3929
} else {
4030
sqlDB, _ := db.DB()

server/service/system/sys_auto_code_oracle.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ WHERE
6464
lower(a.table_name) = ?
6565
AND lower(a.OWNER) = ?
6666
ORDER BY
67-
a.COLUMN_ID;
67+
a.COLUMN_ID
6868
`
6969

7070
err = global.GVA_DBList[businessDB].Raw(sql, tableName, dbName).Scan(&entities).Error

0 commit comments

Comments
 (0)