# postgresql-to-struct **Repository Path**: cn-zhangjie/postgresql-to-struct ## Basic Information - **Project Name**: postgresql-to-struct - **Description**: No description available - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2020-09-01 - **Last Updated**: 2024-06-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # postgresql-to-struct ## 简介 > PostgreSQL的表结构转化成struct实体。 ## 为什么会有此项目 > Go语言初学者,想写个项目练练手,选择ORM框架时选择了[sqlx](https://github.com/jmoiron/sqlx),所以需要自己写`create table`语句, > 但还要再写一遍相应的结构体实在是麻烦,找了很多代码生成器都不太适合自己,所以打算自己写一个。正好熟悉一下go的基本语法和PostgreSQL的数据类型。 ## 功能 1. 可配置表名前缀和连接符,比如,表名前缀为t_,连接符为_,t_users_roles -> UsersRoles。 2. 可配置字段名前缀和连接符,比如,字段名前缀为f_,连接符为_,f_create_time -> CreateTime。 3. 可添加字段注释,例如```CreateTime string `db:"create_time"` ```中的`db`,可以设置成`gorm`、`xorm`等等。 ## 注意事项 1. PostgreSQL也是第一次接触,所以有些类型映射得可能不是很正确规范,大家可以修改`pkg/utils/mapping.go`中的`myConf`。 2. 有些特殊字段,比如ID、URL、IP,并未遵循驼峰形式,想要添加其他特殊字符串,可以修改`pkg/utils/string.go`中的`upperWordSlice`。 3. 如果输出目录中已经存在相应的文件,运行会被覆盖,请避免丢失。 4. 有一些额外的包,比如time、sql包的import语句并没有引入,可以使用其他命令或idea自动引入,代码格式化也是一样。 5. PostgreSQL类型太多了,只转换了一些比较常用的类型,没有引入的默认转换为`interface()`。 ## 使用方法 1. 配置`configs/database.ini`文件和`configs/output.ini`。 2. 普通go项目,编译运行即可,即`main.go`。