[Go]GO语言实战-GO-FLY在线客服gorm导入sql文件

[Go]GO语言实战-GO-FLY在线客服gorm导入sql文件,第1张

概述当初始化项目的时候,之前需要手动导入数据库sql文件,现在可以直接在命令行参数里输入go-fly install ,就可以把数据库文件导进去了 实现方式就是使用gorm执行sql文件里面的每行sql语

当初始化项目的时候,之前需要手动导入数据库sql文件,现在可以直接在命令行参数里输入go-fly install,就可以把数据库文件导进去了

实现方式就是使用gorm执行sql文件里面的每行SQL语句

读入sql文件后把字符串按照分号分隔,转成[]string ,然后再循环执行

实例代码是(自行更改文件目录):

func install(){    sqlfile:=config.Dir+"go-fly.sql"    isExit,_:=tools.IsfileExist(config.MysqLConf)    dataExit,1)">tools.IsfileExist(sqlfile)    if !isExit||!dataExit{        fmt.Println(config/MysqL.Json 数据库配置文件或者数据库文件go-fly.sql不存在)        os.Exit(1)    }    sqls,1)">IoUtil.Readfile(sqlfile)    sqlArr:=strings.Split(string(sqls),;)    for _,sql:=range sqlArr{        if sql==""{            continue        }        models.Execute(sql)    }}

go-fly代码中数据库 *** 作类

package modelsimport (    fmt"    github.com/jinzhu/gormgithub.com/taoshihan1991/imaptool/configtime)var DB *gorm.DBtype Model struct {    ID        uint `gorm:primary_key" Json:ID`    CreatedAt time.Time `Json:created_at`    UpdatedAt time.Time `Json:updated_at`    DeletedAt *time.Time `sql:indexdeleted_at`}func init(){    MysqL:=config.CreateMysqL()    dsn := fmt.Sprintf(%s:%s@tcp(%s:%s)/%s?charset=utf8&parseTime=True&loc=Local,MysqL.Username,MysqL.Password,MysqL.Server,MysqL.Port,mysql.database)    DB,_=gorm.Open(MysqLtrue)    DB.LogMode()    DB.DB().SetMaxIDleConns(10)    DB.DB().SetMaxOpenConns(100)}func Execute(sql string){    DB.Exec(sql)}func CloseDB() {    defer DB.Close()}

简化的逻辑就是gorm open以后得到的实例执行一下Exec方法,执行SQL语句

 

执行完成以后的效果:

 

总结

以上是内存溢出为你收集整理的[Go]GO语言实战-GO-FLY在线客服gorm导入sql文件全部内容,希望文章能够帮你解决[Go]GO语言实战-GO-FLY在线客服gorm导入sql文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1257447.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存