support enum type for mysql
Signed-off-by: 商讯在线 <swhbox@foxmail.com>
This commit is contained in:
parent
724a99021f
commit
c42f893230
23
column.go
23
column.go
|
@ -31,11 +31,30 @@ type Column struct {
|
||||||
IsVersion bool
|
IsVersion bool
|
||||||
fieldPath []string
|
fieldPath []string
|
||||||
DefaultIsEmpty bool
|
DefaultIsEmpty bool
|
||||||
|
EnumOptions map[string]int
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewColumn(name, fieldName string, sqlType SQLType, len1, len2 int, nullable bool) *Column {
|
func NewColumn(name, fieldName string, sqlType SQLType, len1, len2 int, nullable bool) *Column {
|
||||||
return &Column{name, fieldName, sqlType, len1, len2, nullable, "", make(map[string]bool), false, false,
|
return &Column{
|
||||||
TWOSIDES, false, false, false, false, nil, false}
|
Name: name,
|
||||||
|
FieldName: fieldName,
|
||||||
|
SQLType: sqlType,
|
||||||
|
Length: len1,
|
||||||
|
Length2: len2,
|
||||||
|
Nullable: nullable,
|
||||||
|
Default: "",
|
||||||
|
Indexes: make(map[string]bool),
|
||||||
|
IsPrimaryKey: false,
|
||||||
|
IsAutoIncrement: false,
|
||||||
|
MapType: TWOSIDES,
|
||||||
|
IsCreated: false,
|
||||||
|
IsUpdated: false,
|
||||||
|
IsCascade: false,
|
||||||
|
IsVersion: false,
|
||||||
|
fieldPath: nil,
|
||||||
|
DefaultIsEmpty: false,
|
||||||
|
EnumOptions: make(map[string]int),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// generate column description string according dialect
|
// generate column description string according dialect
|
||||||
|
|
4
type.go
4
type.go
|
@ -62,6 +62,7 @@ var (
|
||||||
Integer = "INTEGER"
|
Integer = "INTEGER"
|
||||||
BigInt = "BIGINT"
|
BigInt = "BIGINT"
|
||||||
|
|
||||||
|
Enum = "ENUM"
|
||||||
Char = "CHAR"
|
Char = "CHAR"
|
||||||
Varchar = "VARCHAR"
|
Varchar = "VARCHAR"
|
||||||
TinyText = "TINYTEXT"
|
TinyText = "TINYTEXT"
|
||||||
|
@ -104,6 +105,7 @@ var (
|
||||||
Integer: NUMERIC_TYPE,
|
Integer: NUMERIC_TYPE,
|
||||||
BigInt: NUMERIC_TYPE,
|
BigInt: NUMERIC_TYPE,
|
||||||
|
|
||||||
|
Enum: TEXT_TYPE,
|
||||||
Char: TEXT_TYPE,
|
Char: TEXT_TYPE,
|
||||||
Varchar: TEXT_TYPE,
|
Varchar: TEXT_TYPE,
|
||||||
TinyText: TEXT_TYPE,
|
TinyText: TEXT_TYPE,
|
||||||
|
@ -293,7 +295,7 @@ func SQLType2Type(st SQLType) reflect.Type {
|
||||||
return reflect.TypeOf(float32(1))
|
return reflect.TypeOf(float32(1))
|
||||||
case Double:
|
case Double:
|
||||||
return reflect.TypeOf(float64(1))
|
return reflect.TypeOf(float64(1))
|
||||||
case Char, Varchar, TinyText, Text, MediumText, LongText:
|
case Char, Varchar, TinyText, Text, MediumText, LongText, Enum:
|
||||||
return reflect.TypeOf("")
|
return reflect.TypeOf("")
|
||||||
case TinyBlob, Blob, LongBlob, Bytea, Binary, MediumBlob, VarBinary:
|
case TinyBlob, Blob, LongBlob, Bytea, Binary, MediumBlob, VarBinary:
|
||||||
return reflect.TypeOf([]byte{})
|
return reflect.TypeOf([]byte{})
|
||||||
|
|
Loading…
Reference in New Issue