mirror of
https://gitee.com/dromara/mayfly-go
synced 2025-11-03 16:00:25 +08:00
* fix: 代码合并 * feat:支持数据库版本兼容,目前兼容了oracle11g部分特性 * fix: 修改数据同步bug,数据sql里指定修改字段别,导致未正确记录修改字段值 * feat: 数据库迁移支持定时迁移和迁移到sql文件
35 lines
696 B
Go
35 lines
696 B
Go
package dbi
|
||
|
||
import (
|
||
"database/sql"
|
||
)
|
||
|
||
var (
|
||
metas = make(map[DbType]Meta)
|
||
)
|
||
|
||
// 注册数据库类型与dbmeta
|
||
func Register(dt DbType, meta Meta) {
|
||
metas[dt] = meta
|
||
}
|
||
|
||
// 根据数据库类型获取对应的Meta
|
||
func GetMeta(dt DbType) Meta {
|
||
return metas[dt]
|
||
}
|
||
|
||
type DbVersion string
|
||
|
||
// 数据库元信息,如获取sql.DB、Dialect等
|
||
type Meta interface {
|
||
// 根据数据库信息获取sql.DB
|
||
GetSqlDb(*DbInfo) (*sql.DB, error)
|
||
|
||
// 获取数据库方言
|
||
GetDialect(*DbConn) Dialect
|
||
|
||
// 获取元数据信息接口
|
||
// @param *DbConn 数据库连接, 若一些元数据接口(如 GetIdentifierQuoteString)不需要DbConn,则可以传nil
|
||
GetMetaData(*DbConn) *MetaDataX
|
||
}
|