xorm根据数据库生成go model文件的操作
作者:zgcbj 时间:2024-01-16 00:29:22
你懂的,手工翻译表定义到go结构体是很枯燥的。
so,用xorm搞定。
go get github.com/go-xorm/cmd/xorm
安装以下依赖,用到哪个装哪个。
github.com/go-xorm/xorm
驱动
Mysql: github.com/go-sql-driver/mysql
Postgres: github.com/lib/pq
SQLite: github.com/mattn/go-sqlite3
MSSQL: github.com/denisenkom/go-mssqldb
逆向生成
Reverse 命令可以转换数据库到所有支持的语言的数据结构,安装以后可以用 xorm help reverse查看帮助。
例子:
cd $GOPATH/src/github.com/go-xorm/cmd/xorm
sqlite: xorm reverse sqite3 test.db templates/goxorm
mysql: xorm reverse mysql root:root@/xorm_test?charset=utf8 templates/goxorm
mymysql: xorm reverse mymysql xorm_test2/root/ templates/goxorm
postgres: xorm reverse postgres "dbname=xorm_test sslmode=disable" templates/goxorm
mssql: xorm reverse mssql "server=test;user id=testid;password=testpwd;database=testdb" templates/goxorm
会在./model目录下生成go的文件
坑
1、一定要在$GOPATH/src/github.com/go-xorm/cmd/xorm目录下运行,因为在这个目录下有templets,在解析数据库结构的时候有用。如果在别的目录下运行,会导致命令不报错,但是无法正常生成对应的结构文件。有空可以给github.com/go-xorm/cmd/xorm提个bug,加上错误提示。
2、执行xorm reverse mysql root:root@127.0.0.1:3306/testdb?charset=utf8 templates/goxorm报错2017/08/16 14:09:18 [Error] reverse.go:176 default addr for network '127.0.0.1:3306' unknown
解决办法:
xorm reverse mysql root:root@tcp(127.0.0.1:3306)/testdb?charset=utf8 templates/goxorm xorm reverse mysql root:root@tcp(127.0.0.1:3306)/testdb?charset=utf8 templates/goxorm
补充:「golang」xorm工具生成postgres的model
golang中的orm框架,一般使用xorm的xorm工具根据数据库表自动生成struct文件
xorm reverse postgres "dbname=queimsi sslmode=disable user=postgres password=123456 host=10.0.2.206 port=5432" /data/workspace/go/src/github.com/go-xorm/cmd/xorm/templates/goxorm
然后就会自动在当前目录下生成表的struct文件
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
来源:https://blog.csdn.net/lizao2/article/details/80272213
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
用FrontPage200八步快速建站
![](https://img.aspxhome.com/file/UploadPic/200810/17/20081017105646475.jpg)
Golang并发编程之调度器初始化详解
![](https://img.aspxhome.com/file/2023/5/99635_0s.png)
python单测框架之pytest常见用法
![](https://img.aspxhome.com/file/2023/9/69509_0s.png)
C#使用ADO.Net连接数据库与DbProviderFactory实现多数据库访问
如何使用python把ppt转换成pdf
Python3分析处理声音数据的例子
Vue中Axios的封装与接口管理详解
python源文件的字符编码知识点详解
详解PHP的Sodium加密扩展函数
.NET Framework SQL Server 数据提供程序连接池
基于一致性hash算法(consistent hashing)的使用详解
![](https://img.aspxhome.com/file/2023/8/109808_0s.jpg)
Python中字典创建、遍历、添加等实用操作技巧合集
SQL 多条件查询几种实现方法详细介绍
vuex 多模块时 模块内部的mutation和action的调用方式
![](https://img.aspxhome.com/file/2023/5/139825_0s.jpg)
c#将Excel数据导入到数据库的实现代码
![](https://img.aspxhome.com/file/2023/2/68632_0s.jpg)
小结Python的反射机制
python人工智能tensorflow常用激活函数Activation Functions
![](https://img.aspxhome.com/file/2023/6/67236_0s.png)
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
![](https://img.aspxhome.com/file/2023/9/125819_0s.png)
python调用新浪微博API项目实践
![](https://img.aspxhome.com/file/2023/1/133411_0s.gif)
Python Selenium Cookie 绕过验证码实现登录示例代码
![](https://img.aspxhome.com/file/2023/5/121465_0s.png)