查看所有 Schema
获取所有 schema 的详情,含属性信息
// 查看所有 点schema
nodeSchemas, _ := client.ListSchema(ultipa.DBType_DBNODE, nil)
log.Println(nodeSchemas)
// 查看所有 边schema
edgeSchemas, _ := client.ListSchema(ultipa.DBType_DBEDGE, nil)
log.Println(edgeSchemas)
查看某个 Schema
获取某个 schema 的详情,含属性信息
// 查看一个 点schema
nodeSchema, _ := client.GetSchema("my_node_schema", ultipa.DBType_DBNODE, nil)
log.Println(nodeSchema)
// 查看一个 边schema
edgeSchema, _ := client.GetSchema("my_edge_schema", ultipa.DBType_DBEDGE, nil)
log.Println(edgeSchema)
创建 Schema
// 创建一个空 schema
newSchema := &structs.Schema{
Name: "new_node_schema",
DBType: ultipa.DBType_DBNODE,
}
resp, _ := client.CreateSchema(newSchema, false, nil) // 第二个参数 false 表示“不创建属性”
log.Println(resp.Status.Code)
// 创建一个 schema 及其属性
newSchemaWithProperties := &structs.Schema{
Name: "my_node_schema_prop",
Desc: "A Schema with 2 properties",
Properties: []*structs.Property{
{
Name: "username",
Type: ultipa.PropertyType_STRING,
},
{
Name: "password",
Type: ultipa.PropertyType_STRING,
},
},
}
resp2, _ := client.CreateSchema(newSchemaWithProperties, true, nil) // 第二个参数 true 表示“创建属性”
log.Println(resp2)
如不存在则创建 Schema
创建 schema 时,如果该 schema 已存在则返回 false
schema := structs.Schema{
Name: "new_schema",
}
resp, _ := client.CreateSchemaIfNotExist(&schema, nil)
log.Println(resp)