当初始化项目的时候,之前需要手动导入数据库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文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)