Advertisement
Guest User

Untitled

a guest
Feb 8th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.66 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "database/sql/driver"
  5. "encoding/json"
  6.  
  7. "github.com/jinzhu/gorm"
  8. _ "github.com/lib/pq"
  9. )
  10.  
  11. type JSONB map[string]interface{}
  12.  
  13. func (j JSONB) Value() (driver.Value, error) {
  14. valueString, err := json.Marshal(j)
  15. return string(valueString), err
  16. }
  17.  
  18. func (j *JSONB) Scan(value interface{}) error {
  19. if err := json.Unmarshal(value.([]byte), &j); err != nil {
  20. return err
  21. }
  22. return nil
  23. }
  24.  
  25. type User struct {
  26. gorm.Model
  27. Info JSONB `sql:"type:jsonb"`
  28. }
  29.  
  30. func main() {
  31. db, _ := gorm.Open("postgres", "user=myuser password=mypassword dbname=mydbname sslmode=disable")
  32.  
  33. db.CreateTable(&User{})
  34. db.Create(&User{Info: JSONB{"age": 27, "name": "Yan"}})
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement