1. GORM Dialects
GORM 原生支持 sqlite, mysql, postgres 和 mssql。
有一些关系型数据库与 mysql 和 postgres 语法兼容,因此你可以直接使用这两个数据库的 dialect 。
1.2. Dialect 专属的数据类型
GORM 支持 PostgreSQL 专有的字段类型:
- jsonb
- hstore
你可以这样子使用 Model:
password := "0654857340"
metadata := json.RawMessage(`{"is_archived": 0}`)
Body: "This is a test document",
Metadata: postgres.Jsonb{ metadata },
Secrets: postgres.Hstore{"password": &password},
// 将范例数据写入数据库
db.Create(&sampleDoc)
// 读取数据,来检测是否正确写入
resultDoc := Document{}
metadataIsEqual := reflect.DeepEqual(resultDoc.Metadata, sampleDoc.Metadata)
secretsIsEqual := reflect.DeepEqual(resultDoc.Secrets, resultDoc.Secrets)
fmt.Println("Inserted fields are as expected:", metadataIsEqual && secretsIsEqual)