model-genGo 专用的模型生成器
model-gen 是一个Go 专用的模型生成器。
原理
通过获取 mysql 表结构,进行 model 文件生成。
迭代
目前支持 mysql,未来预计支持 mariadb 和 pgsql (sql server 还未考量)
快速入门
代码:
mysqlHost := "127.0.0.1"
mysqlPort := "3306"
mysqlUser := "root"
mysqlPassword := "sa"
mysqlDbname := "blog"
dsn := mysqlUser + ":" + mysqlPassword + "@tcp(" + mysqlHost + ":" + mysqlPort + ")/" + mysqlDbname + "?charset=utf8mb4"
Mysql := GetMysqlToGo()
Mysql.Driver.SetDsn(dsn)
Mysql.SetModelPath("/tmp")
Mysql.SetIgnoreTables("cate")
Mysql.SetPackageName("models")
Mysql.Run()
执行结果:
ll /tmp
total *
-rw-r--r-- 1 limars wheel 297 12 18 17:59 cate.go
-rw-r--r-- 1 limars wheel 597 12 18 17:59 comment.go
-rw-r--r-- 1 limars wheel 826 12 18 17:59 content.go
......
cat cate.go
package models
type Cate struct {
Id int `orm:"id" json:"id"`
Name string `orm:"name" json:"name"`
CreateTime string `orm:"create_time" json:"create_time"`
UpdateTime string `orm:"update_time" json:"update_time"`
}
func (cate *Cate) GetTableName() string {
return "cate"
}
附带上sql:
CREATE DATABASE `blog`;
USE `blog`;
CREATE TABLE `cate` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL DEFAULT '',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `comment` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`blog_id` int(11) unsigned NOT NULL,
`parent_id` int(11) unsigned NOT NULL DEFAULT '0',
`ip` varchar(32) NOT NULL DEFAULT '',
`email` varchar(255) NOT NULL DEFAULT '',
`name` varchar(50) NOT NULL DEFAULT '',
`content` tinytext NOT NULL,
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`status` tinyint(1) unsigned NOT NULL DEFAULT '1',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `content` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`cate_id` int(11) unsigned NOT NULL COMMENT '分类id',
`title` varchar(255) NOT NULL DEFAULT '' COMMENT '标题',
`description` tinytext NOT NULL COMMENT '简介',
`content` text NOT NULL COMMENT '正文',
`keyword` varchar(255) NOT NULL DEFAULT '' COMMENT 'seo关键字',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`status` tinyint(1) unsigned NOT NULL DEFAULT '1',
`is_original` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1 原创 2 转载',
`ext` text NOT NULL COMMENT '扩展字段',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
评论
reactive_recordActiveRecord 模型生成器
reactive_record 能根据现有的 Postgres 数据库生成 ActiveRecor
reactive_recordActiveRecord 模型生成器
0
reactive_recordActiveRecord 模型生成器
reactive_record能根据现有的Postgres数据库生成 ActiveRecord模型。特性全自动可以为每个表都创模型可以创建一个初始的迁移关键字声明,唯一性和存在约束可以创建关联为CHE
reactive_recordActiveRecord 模型生成器
0
大模型的终局是「通用」还是「专用」?
这是求职产品经理系列的第278篇文章在大模型技术的飞速发展中,通用能力的提升和各种专用模型的涌现,引发了一个值得深思的问题:大模型的终局究竟是「通用」还是「专用」?这篇文章我们将探讨这个问题,揭示大模型发展的终极目标,并为每一个想要在这一领域的发展的你提供切实的建议。通用与专用的辩证随着人工智能领域
薛老板产品派
0
JHipsterYeoman 的生成器
JHipster是一个Yeoman的生成器,用来创建基于Maven+Spring+AngularJS的项目,提供完全热加载的Java和JavaScript代码。我们的目的是生成一个完整和现代的Weba
JHipsterYeoman 的生成器
0
exe4jJava 的 Exe 生成器
exe4j是一个帮助你集成Java应用程序到Windows操作环境的java可执行文件生成工具,无论这些应用是用于服务器,还是图形用户界面(GUI)或命令行的应用程序。如果你想在任务管理器中及Wind
exe4jJava 的 Exe 生成器
0