修改gorm-oracle的驱动包为go-ora,不再依赖cgo和oracle client
This commit is contained in:
@@ -1,10 +1,18 @@
|
|||||||
package config
|
package config
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"net"
|
||||||
|
"net/url"
|
||||||
|
)
|
||||||
|
|
||||||
type Oracle struct {
|
type Oracle struct {
|
||||||
GeneralDB `yaml:",inline" mapstructure:",squash"`
|
GeneralDB `yaml:",inline" mapstructure:",squash"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Oracle) Dsn() string {
|
func (m *Oracle) Dsn() string {
|
||||||
return "oracle://" + m.Username + ":" + m.Password + "@" + m.Path + ":" + m.Port + "/" + m.Dbname + "?" + m.Config
|
dsn := fmt.Sprintf("oracle://%s:%s@%s/%s?%s", url.PathEscape(m.Username), url.PathEscape(m.Password),
|
||||||
|
net.JoinHostPort(m.Path, m.Port), url.PathEscape(m.Dbname), m.Config)
|
||||||
|
return dsn
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -1,18 +1,14 @@
|
|||||||
package initialize
|
package initialize
|
||||||
|
|
||||||
import (
|
import (
|
||||||
//"github.com/dzwvip/oracle"
|
oracle "github.com/dzwvip/gorm-oracle"
|
||||||
"github.com/flipped-aurora/gin-vue-admin/server/config"
|
"github.com/flipped-aurora/gin-vue-admin/server/config"
|
||||||
"github.com/flipped-aurora/gin-vue-admin/server/global"
|
"github.com/flipped-aurora/gin-vue-admin/server/global"
|
||||||
"github.com/flipped-aurora/gin-vue-admin/server/initialize/internal"
|
"github.com/flipped-aurora/gin-vue-admin/server/initialize/internal"
|
||||||
|
|
||||||
//_ "github.com/godror/godror"
|
|
||||||
"gorm.io/driver/mysql"
|
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
)
|
)
|
||||||
|
|
||||||
// GormOracle 初始化oracle数据库
|
// GormOracle 初始化oracle数据库
|
||||||
// 如果需要Oracle库 放开import里的注释 把下方 mysql.Config 改为 oracle.Config ; mysql.New 改为 oracle.New
|
|
||||||
func GormOracle() *gorm.DB {
|
func GormOracle() *gorm.DB {
|
||||||
m := global.GVA_CONFIG.Oracle
|
m := global.GVA_CONFIG.Oracle
|
||||||
return initOracleDatabase(m)
|
return initOracleDatabase(m)
|
||||||
@@ -28,13 +24,7 @@ func initOracleDatabase(m config.Oracle) *gorm.DB {
|
|||||||
if m.Dbname == "" {
|
if m.Dbname == "" {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
if db, err := gorm.Open(oracle.Open(m.Dsn()), internal.Gorm.Config(m.Prefix, m.Singular)); err != nil {
|
||||||
oracleConfig := mysql.Config{
|
|
||||||
DSN: m.Dsn(), // DSN data source name
|
|
||||||
DefaultStringSize: 191, // string 类型字段的默认长度
|
|
||||||
}
|
|
||||||
|
|
||||||
if db, err := gorm.Open(mysql.New(oracleConfig), internal.Gorm.Config(m.Prefix, m.Singular)); err != nil {
|
|
||||||
panic(err)
|
panic(err)
|
||||||
} else {
|
} else {
|
||||||
sqlDB, _ := db.DB()
|
sqlDB, _ := db.DB()
|
||||||
|
@@ -64,7 +64,7 @@ WHERE
|
|||||||
lower(a.table_name) = ?
|
lower(a.table_name) = ?
|
||||||
AND lower(a.OWNER) = ?
|
AND lower(a.OWNER) = ?
|
||||||
ORDER BY
|
ORDER BY
|
||||||
a.COLUMN_ID;
|
a.COLUMN_ID
|
||||||
`
|
`
|
||||||
|
|
||||||
err = global.GVA_DBList[businessDB].Raw(sql, tableName, dbName).Scan(&entities).Error
|
err = global.GVA_DBList[businessDB].Raw(sql, tableName, dbName).Scan(&entities).Error
|
||||||
|
Reference in New Issue
Block a user