Skip to content

dvormagic/gormt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gormt

gormt is a library designed for the Go programming language. It allows to use custom structs as gorm JSON type columns through go generics. Requires Go version 1.18 or higher.

How to use

Given the following Postgres table:

CREATE TABLE letters (
	id  UUID NOT NULL PRIMARY KEY,
	info JSON NOT NULL
);

where info will contains a JSON like:

{ 
  "sender": "Dvor",
  "recipient": "Magic",
  "content": "Hello World"
}

We implement the model as follows:

type Letter struct {
  ID   string `gorm:"primaryKey"`
  Info gormt.JSON[[]*Info]
}

type Info struct {
  Sender    string `json:"sender"`
  Recipient string `json:"recipient"`
  Content   string `json:"content"`
}

GORM requires the customized data type to implement the Scanner and Valuer interfaces. This way GORM knowns to how to receive/save it into the database. But using this library you get rid of any complication. You just need to add the label gormt.JSON[T] where T could be your custom type and you are good to go!

About

Allow to use custom structs as JSON columns through go generics.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages