add: INDEX FULLTEXT
add: Default value
This commit is contained in:
@@ -56,6 +56,7 @@ type KList struct {
|
|||||||
Key ColumnsKey // non_unique of (show keys from [table])
|
Key ColumnsKey // non_unique of (show keys from [table])
|
||||||
Multi bool // Multiple .是否多个(复合组建)
|
Multi bool // Multiple .是否多个(复合组建)
|
||||||
KeyName string // key_name of (show keys from [table])
|
KeyName string // key_name of (show keys from [table])
|
||||||
|
KeyType string // Key_type of (show keys from [Index_type])
|
||||||
}
|
}
|
||||||
|
|
||||||
// BaseInfo base common attribute. 基础属性
|
// BaseInfo base common attribute. 基础属性
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ type keys struct {
|
|||||||
NonUnique int `gorm:"column:Non_unique"`
|
NonUnique int `gorm:"column:Non_unique"`
|
||||||
KeyName string `gorm:"column:Key_name"`
|
KeyName string `gorm:"column:Key_name"`
|
||||||
ColumnName string `gorm:"column:Column_name"`
|
ColumnName string `gorm:"column:Column_name"`
|
||||||
|
IndexType string `gorm:"column:Index_type"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// genColumns show full columns
|
// genColumns show full columns
|
||||||
@@ -15,6 +16,7 @@ type genColumns struct {
|
|||||||
Key string `gorm:"column:Key"`
|
Key string `gorm:"column:Key"`
|
||||||
Desc string `gorm:"column:Comment"`
|
Desc string `gorm:"column:Comment"`
|
||||||
Null string `gorm:"column:Null"`
|
Null string `gorm:"column:Null"`
|
||||||
|
Default *string `gorm:"column:Default"`
|
||||||
}
|
}
|
||||||
|
|
||||||
//select table_schema,table_name,column_name,referenced_table_schema,referenced_table_name,referenced_column_name from INFORMATION_SCHEMA.KEY_COLUMN_USAGE
|
//select table_schema,table_name,column_name,referenced_table_schema,referenced_table_name,referenced_column_name from INFORMATION_SCHEMA.KEY_COLUMN_USAGE
|
||||||
|
|||||||
@@ -144,6 +144,14 @@ func (m *mysqlModel) getTableElement(orm *mysqldb.MySqlDB, tab string) (el []mod
|
|||||||
tmp.Type = v.Type
|
tmp.Type = v.Type
|
||||||
FixElementTag(&tmp, v.Desc) // 分析表注释
|
FixElementTag(&tmp, v.Desc) // 分析表注释
|
||||||
|
|
||||||
|
if v.Default != nil {
|
||||||
|
if *v.Default == "" {
|
||||||
|
tmp.Gormt = "default:''"
|
||||||
|
} else {
|
||||||
|
tmp.Gormt = fmt.Sprintf("default:%s", *v.Default)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// keys
|
// keys
|
||||||
if keylist, ok := KeyColumnMp[v.Field]; ok { // maybe have index or key
|
if keylist, ok := KeyColumnMp[v.Field]; ok { // maybe have index or key
|
||||||
for _, v := range keylist {
|
for _, v := range keylist {
|
||||||
@@ -152,6 +160,7 @@ func (m *mysqlModel) getTableElement(orm *mysqldb.MySqlDB, tab string) (el []mod
|
|||||||
tmp.Index = append(tmp.Index, model.KList{
|
tmp.Index = append(tmp.Index, model.KList{
|
||||||
Key: model.ColumnsKeyPrimary,
|
Key: model.ColumnsKeyPrimary,
|
||||||
Multi: (keyNameCount[v.KeyName] > 1),
|
Multi: (keyNameCount[v.KeyName] > 1),
|
||||||
|
KeyType: v.IndexType,
|
||||||
})
|
})
|
||||||
} else { // unique
|
} else { // unique
|
||||||
if keyNameCount[v.KeyName] > 1 {
|
if keyNameCount[v.KeyName] > 1 {
|
||||||
@@ -159,12 +168,14 @@ func (m *mysqlModel) getTableElement(orm *mysqldb.MySqlDB, tab string) (el []mod
|
|||||||
Key: model.ColumnsKeyUniqueIndex,
|
Key: model.ColumnsKeyUniqueIndex,
|
||||||
Multi: (keyNameCount[v.KeyName] > 1),
|
Multi: (keyNameCount[v.KeyName] > 1),
|
||||||
KeyName: v.KeyName,
|
KeyName: v.KeyName,
|
||||||
|
KeyType: v.IndexType,
|
||||||
})
|
})
|
||||||
} else { // unique index key.唯一复合索引
|
} else { // unique index key.唯一复合索引
|
||||||
tmp.Index = append(tmp.Index, model.KList{
|
tmp.Index = append(tmp.Index, model.KList{
|
||||||
Key: model.ColumnsKeyUnique,
|
Key: model.ColumnsKeyUnique,
|
||||||
Multi: (keyNameCount[v.KeyName] > 1),
|
Multi: (keyNameCount[v.KeyName] > 1),
|
||||||
KeyName: v.KeyName,
|
KeyName: v.KeyName,
|
||||||
|
KeyType: v.IndexType,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -173,6 +184,7 @@ func (m *mysqlModel) getTableElement(orm *mysqldb.MySqlDB, tab string) (el []mod
|
|||||||
Key: model.ColumnsKeyIndex,
|
Key: model.ColumnsKeyIndex,
|
||||||
Multi: true,
|
Multi: true,
|
||||||
KeyName: v.KeyName,
|
KeyName: v.KeyName,
|
||||||
|
KeyType: v.IndexType,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,7 +91,11 @@ func (m *_Model) genTableElement(cols []ColumnsInfo) (el []genstruct.GenElement)
|
|||||||
case ColumnsKeyUnique: // unique key.唯一索引
|
case ColumnsKeyUnique: // unique key.唯一索引
|
||||||
tmp.AddTag(_tagGorm, "unique")
|
tmp.AddTag(_tagGorm, "unique")
|
||||||
case ColumnsKeyIndex: // index key.复合索引
|
case ColumnsKeyIndex: // index key.复合索引
|
||||||
|
if v1.KeyType=="FULLTEXT" {
|
||||||
|
tmp.AddTag(_tagGorm, getUninStr("index", ":", v1.KeyName)+",class:FULLTEXT")
|
||||||
|
}else{
|
||||||
tmp.AddTag(_tagGorm, getUninStr("index", ":", v1.KeyName))
|
tmp.AddTag(_tagGorm, getUninStr("index", ":", v1.KeyName))
|
||||||
|
}
|
||||||
case ColumnsKeyUniqueIndex: // unique index key.唯一复合索引
|
case ColumnsKeyUniqueIndex: // unique index key.唯一复合索引
|
||||||
tmp.AddTag(_tagGorm, getUninStr("uniqueIndex", ":", v1.KeyName))
|
tmp.AddTag(_tagGorm, getUninStr("uniqueIndex", ":", v1.KeyName))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,8 +22,6 @@ func TestTools(t *testing.T) {
|
|||||||
list, _ := Generate(pkg)
|
list, _ := Generate(pkg)
|
||||||
fmt.Println(list)
|
fmt.Println(list)
|
||||||
|
|
||||||
config.SetSingularTable(true)
|
|
||||||
config.SetSingularTable(true)
|
|
||||||
config.SetForeignKey(true)
|
config.SetForeignKey(true)
|
||||||
list, _ = Generate(pkg)
|
list, _ = Generate(pkg)
|
||||||
fmt.Println(list)
|
fmt.Println(list)
|
||||||
|
|||||||
Reference in New Issue
Block a user