数据库插件
Go-Lynx 提供了数据连接插件,我们可以不用关心如何去编写连接数据库的相关代码,只需要提供对应的数据库配置文件即可自动进行数据库连接初始化,目前部分配置参数还不够完整(例如:ssl加密通讯,多数据源配置),目前还在持续开发中,敬请期待。
数据库配置
指定数据库需要在配置文件中进行配置,文件内容如下:
lynx:
db:
driver: mysql
source: root:123@tcp(127.0.0.1:3306)/demo?parseTime=True
min_conn: 50
max_conn: 50
max_idle_time: 30s
其中的 lynx.db
相关内容就是数据库配置信息。目前默认是使用的 ent
进行数据库连接,后面会持续支持更多的 orm 框架,例如 gorm。
配置完成之后,应用程序一旦启动就会根据插件顺序进行加载数据库。
如何获取数据库连接 Driver
信息?
import (
"github.com/go-lynx/lynx/plugin/db"
)
var ProviderSet = wire.NewSet(
NewData,
db.GetDriver
)
type Data struct {
db *ent.Client
}
func NewData(dri *sql.Driver,logger log.Logger) (*Data, error) {
client := ent.NewClient(ent.Driver(dri), ent.Debug())
// 表构建
if err := client.Schema.Create(context.Background()); err != nil {
dfLog := log.NewHelper(logger)
dfLog.Errorf("failed creating database schema resources: %v", err)
return nil, err
}
d := &Data{
db: client
}
return d, nil
}
我们提供了 db.GetDriver
方法,该方法会从插件中返回连接对象信息,再配合 wire
框架帮助我们进行方法调用生成即可。以上就是如何完整的使用数据库插件的方式。