当前位置: 首页 > news >正文

柳城企业网站建设价格网页设计 做网站的代码

柳城企业网站建设价格,网页设计 做网站的代码,帮人家做家务的网站,ps海报素材网golang的sqlite驱动不使用cgo实现 更换gorm默认的SQLite驱动 最近在开发一个边缘物联网程序时使用Golang开发#xff0c;用到GORM来操作SQLite数据库#xff0c;GORM默认使用gorm.io/driver/sqlite这个库作为SQLite驱动#xff0c;该库用CGO实现#xff0c;在使用过程中遇…golang的sqlite驱动不使用cgo实现 更换gorm默认的SQLite驱动 最近在开发一个边缘物联网程序时使用Golang开发用到GORM来操作SQLite数据库GORM默认使用gorm.io/driver/sqlite这个库作为SQLite驱动该库用CGO实现在使用过程中遇到一些问题编译好二进制程序放到资源受限的设备中运行报错如下最后更换第三方SQLite驱动解决。 github.com/mattn/go-sqlite3 这个库现在在 go 项目当中引用最多应用最广;俨然成为这一方面的标准但有一个最大的问题就是这是一个 C 语言实现的库如果要应用这个库那么你的环境就需要解决这个 CGO 依赖。 报错如下,正是因为GORM官方SQLite驱动使用CGO实现因此我在使用过程中遇到以下错误 [error] failed to initialize database, got error Binary was compiled with CGO_ENABLED0, go-sqlite3 requires cgo to work. This is a stub panic: Binary was compiled with CGO_ENABLED0, go-sqlite3 requires cgo to work. This is a stub大致意思是GORM SQLite驱动使用了CGO实现需要在CGO环境下才能工作。 那么解决方法也很简单只需要修改CGO_ENABLED这个环境变量启用CGO支持即可 go env -w CGO_ENABLED1启用CGO后编译的是动态链库的二进制文件那么你一旦更换平台比如将程序放到Windows下运行可能因为缺少相关的一些动态链库比如SQLite从而无法运行为了保持编译的二进制文件能够无动态依赖的情况下正常运行因此不得不考虑静态编译所以就和GORM SQLite驱动产生了冲突。 很多瘦小设备弱设备里的系统没有相关依赖库和驱动也很难安装相关的驱动此时不得不考虑使用不依赖任何三方的驱动情况下运行程序。 解决方案-更换GORM默认的SQLite驱动 在GORM官方的Issues发现也有人反馈此类问题于是顺藤摸瓜找到了github.com/glebarez/sqlite这个库该库使用纯go实现不依赖CGO地址是https://github.com/glebarez/sqlite 使用如下驱动 import (fmt_ github.com/glebarez/sqlitegithub.com/jinzhu/gorm_ github.com/jinzhu/gorm/dialects/sqlite )const (dbDriverName sqlitedbName iot.db )var SqliteDb *gorm.DBfunc SqliteInit() {var err errorSqliteDb, err gorm.Open(dbDriverName, ./dbName)if err ! nil {fmt.Printf(connect DB failed, err:%v\n, err)return}fmt.Println(connect DB success)// 打印 SQL 语句SqliteDb.LogMode(true)// 空闲状态下的最大连接数默认的最大空闲连接数为2SqliteDb.DB().SetMaxIdleConns(10)// 最大打开连接数 默认值为0无限制SqliteDb.DB().SetMaxOpenConns(50)// 不要复数表名SqliteDb.SingularTable(true)// 自动迁移模型创建表//SqliteDb.AutoMigrate() }func SqliteClose() {//关闭SqliteDb.Close() } 这样就可以在不依赖CGO的情况下编译出静态二进制文件从而解决跨平台依赖动态链库的问题。 代价 glebarez/sqlite性能不及官方驱动但牺牲少部分性能来换取方便个人觉得还是值得的如果没有跨平台需求使用官方默认驱动即可 静态编译打包后的文件体积明显增加 参考链接 https://blog.xiaoz.org/archives/18195 https://wiki.eryajf.net/pages/74da0a/#%E5%89%8D%E8%A8%80 https://yoby123.cn/2021/06/15/20210615-sqlite.html
http://www.tj-hxxt.cn/news/136907.html

相关文章:

  • 做蛋糕网站有哪些英德市住房和城乡建设局网站
  • 花生壳可以做网站吗seo网站项目讲解
  • wordpress网站标题网站建设预付费入什么科目
  • 有没有做网站一次付费景观设计园林公司
  • 自定义网站建设宜章网站建设
  • cms网站模板中企动力公司是做什么的
  • 济源建设工程管理处网站张家港高端网站建设公司
  • 潍坊娜娜网站制作wordpress设置留言板
  • 自己做网站哪里最好福州手机模板建站
  • 现在做网站怎么样wordpress克隆他人的网站
  • 网站统计代码怎么弄seo网络推广技巧
  • 怎么做58同城网站中国做爰网站
  • 江苏淮安建设局网站北京建设高端网站
  • 正规绍兴网站建设公司百讯网站建设
  • 网站还没完成 能备案吗西安做行业平台网站的公司
  • 长春什么时候解封东莞网站优化的具体方案
  • 做网站明细范文游戏网站首页设计
  • 网站程序制作dell网站设计特色
  • 网站页面怎么做武钢建设公司网站
  • 大连市城乡建设局网站福建住房和城乡建设厅网站一体化平台
  • 个人工作室网站app生成链接
  • 深圳网站建设模板乐云seo网站界面设计的主要内容
  • 网站模板 响应式怎么在网上做公司网站
  • 丰都网站建设哪家好网站建设费用低设计好
  • 东莞网站优化关键词公司怎样添加字体到wordpress
  • 微信代运营协议奢侈品网站怎么做tuig优化
  • 休闲食品网站建设目的wampserver网站开发步骤
  • 房产网贷平台宁波网站优化如何
  • 外包网站会自己做原型吗动画设计培训费用
  • 虹口房产网站建设圣诞节网站怎么做