{"id":20031174,"url":"https://github.com/gohouse/converter","last_synced_at":"2025-04-04T09:09:25.548Z","repository":{"id":38355848,"uuid":"156355245","full_name":"gohouse/converter","owner":"gohouse","description":"database table to golang struct (table to struct) converter with cli and go lib support","archived":false,"fork":false,"pushed_at":"2024-06-06T06:12:13.000Z","size":21,"stargazers_count":367,"open_issues_count":13,"forks_count":111,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-28T08:06:01.460Z","etag":null,"topics":["cli","converter","golang","mysql","struct","table"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gohouse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-06T09:01:36.000Z","updated_at":"2025-03-21T03:40:38.000Z","dependencies_parsed_at":"2024-06-18T13:08:04.880Z","dependency_job_id":null,"html_url":"https://github.com/gohouse/converter","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gohouse%2Fconverter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gohouse%2Fconverter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gohouse%2Fconverter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gohouse%2Fconverter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gohouse","download_url":"https://codeload.github.com/gohouse/converter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247149502,"owners_count":20891954,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","converter","golang","mysql","struct","table"],"created_at":"2024-11-13T09:31:24.372Z","updated_at":"2025-04-04T09:09:25.516Z","avatar_url":"https://github.com/gohouse.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"a lib for golang , generate mysql table schema to golang struct  \n-----\nmysql表结构自动生成golang struct  \n\n## github地址\n[https://github.com/gohouse/converter](https://github.com/gohouse/converter)\n\n## 安装\n1. 直接下载可执行文件: [下载地址](https://github.com/gohouse/converter/releases)  \n2. golang源码包: `go get github.com/gohouse/converter`\n\n## 示例表结构\n```sql\nCREATE TABLE `prefix_user` (\n  `Id` int(11) NOT NULL AUTO_INCREMENT,\n  `Email` varchar(32) NOT NULL DEFAULT '' COMMENT '邮箱',\n  `Password` varchar(32) NOT NULL DEFAULT '' COMMENT '密码',\n  `CreatedAt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,\n  PRIMARY KEY (`Id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表'\n```\n\n## 命令行用法\n1. 下载对应平台的可执行文件, [下载地址](https://github.com/gohouse/converter/releases)\n\n2. 命令行执行\n    ```sh\n    # 文件名: table2struct-[$platform].[$version].[$suffix]\n    ./table2struct-linux.v0.0.3.bin -file model.go -dsn xxx -table user\n    ```\n\n3. 参数说明\n```sh\n-dsn            string 数据库dsn配置\n-enableJsonTag  bool 是否添加json的tag\n-file           string 保存路径\n-packageName    string 包名\n-prefix         string 表前缀\n-realNameMethod string 结构体对应的表名\n-table          string 要迁移的表\n-tagKey         string tag的key\n```\n\n## golang代码简单用法\n```go\npackage main\nimport (\n\t\"fmt\"\n\t\"github.com/gohouse/converter\"\n)\nfunc main() {\n\terr := converter.NewTable2Struct().\n\t\tSavePath(\"/home/go/project/model/model.go\").\n\t\tDsn(\"root:root@tcp(localhost:3306)/test?charset=utf8\").\n\t\tRun()\n\tfmt.Println(err)\n}\n```\n\n## golang代码详细用法示例\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"github.com/gohouse/converter\"\n)\n\nfunc main() {\n\t// 初始化\n\tt2t := converter.NewTable2Struct()\n\t// 个性化配置\n\tt2t.Config(\u0026converter.T2tConfig{\n\t\t// 如果字段首字母本来就是大写, 就不添加tag, 默认false添加, true不添加\n\t\tRmTagIfUcFirsted: false,\n\t\t// tag的字段名字是否转换为小写, 如果本身有大写字母的话, 默认false不转\n\t\tTagToLower: false,\n\t\t// 字段首字母大写的同时, 是否要把其他字母转换为小写,默认false不转换\n\t\tUcFirstOnly: false,\n\t\t//// 每个struct放入单独的文件,默认false,放入同一个文件(暂未提供)\n\t\t//SeperatFile: false,\n\t})\n\t// 开始迁移转换\n\terr := t2t.\n\t\t// 指定某个表,如果不指定,则默认全部表都迁移\n\t\tTable(\"user\").\n\t\t// 表前缀\n\t\tPrefix(\"prefix_\").\n\t\t// 是否添加json tag\n\t\tEnableJsonTag(true).\n\t\t// 生成struct的包名(默认为空的话, 则取名为: package model)\n\t\tPackageName(\"model\").\n\t\t// tag字段的key值,默认是orm\n\t\tTagKey(\"orm\").\n\t\t// 是否添加结构体方法获取表名\n\t\tRealNameMethod(\"TableName\").\n\t\t// 生成的结构体保存路径\n\t\tSavePath(\"/Users/fizz/go/src/github.com/gohouse/gupiao/model/model.go\").\n\t\t// 数据库dsn,这里可以使用 t2t.DB() 代替,参数为 *sql.DB 对象\n\t\tDsn(\"root:root@tcp(localhost:3306)/test?charset=utf8\").\n\t\t// 执行\n\t\tRun()\n\t\n\tfmt.Println(err)\n}\n```\n\nresult \n```go\npackage model\n\nimport \"time\"\n\ntype User struct {\n\tId         int     `json:\"Id\" orm:\"Id\"`\n\tEmail      string  `json:\"Email\" orm:\"Email\"`           // 邮箱\n\tPassword   string  `json:\"Password\" orm:\"Password\"`     // 密码\n\tCreatedAt  string  `json:\"CreatedAt\" orm:\"CreatedAt\"`\n}\n\nfunc (*User) TableName() string {\n\treturn \"user\"\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgohouse%2Fconverter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgohouse%2Fconverter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgohouse%2Fconverter/lists"}