ΠΠΌΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
type BufferType string
const (
Console BufferType = "console"
Channel BufferType = "channel"
Conversation BufferType = "conversation"
)
type Buffer struct {
Bid int64 `gorm:"primary_key:yes"`
Type BufferType `sql:"not null;type:ENUM('console', 'channel', 'conversation')"`
Name string `sql:"size:255;not null"`
}
ΠΠΎΠ³Π΄Π° Ρ ΠΏΡΠΎΠ±ΡΡ db.Save (Π±ΡΡΠ΅Ρ), Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ:
sql: converting Exec argument #1's type: unsupported type BufferType, a string)
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΅ΡΠΈΡΡ, ΡΡΠΎ BufferType Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠΎΠΊΠ°, ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ? Π― ΠΏΠΎΠ»ΡΡΠ°Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, Π΅ΡΠ»ΠΈ ΠΏΡΡΠ°ΡΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ db.Find ()
ΠΠΎΡΠ»Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° , ΠΊΠ°ΠΆΠ΅ΡΡΡ, Π²ΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ golang / SQL ΠΊΠΎΠ΄Π°, ΠΈ Ρ Π½Π°ΡΠ΅Π» ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π΄Π΅ΡΡ . ΠΠ½Π΅ ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ:
func (u *BufferType) Scan(value interface{}) error { *u = BufferType(value.(string)); return nil }
func (u BufferType) Value() (driver.Value, error) { return string(u), nil }
ΠΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠΊΠ»ΡΠΆΠ΅, Π½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ. Π― ΠΌΠΎΠ³ Π±Ρ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΎΡΠΈΠ±ΠΎΠΊ, Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΠ½Π΅ ΡΡΠΎ Π±ΡΠ»ΠΎ Π½ΡΠΆΠ½ΠΎ.
Π― Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. Π Π΅ΡΠ΅Π½ΠΈΠ΅ @bramp ΠΏΠΎ- ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π΄Π°Π»ΠΎ ΠΌΠ½Π΅ ΠΎΡΠΈΠ±ΠΊΡ. ΠΠ»Ρ ΠΌΠ΅Π½Ρ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
func (u *BufferType) Scan(value interface{}) error { *u = BufferType(value.([]byte)); return nil }
func (u BufferType) Value() (driver.Value, error) { return string(u), nil }
Π Π°Π·Π½ΠΈΡΠ° Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ []byte
Π²ΠΌΠ΅ΡΡΠΎ string
. ΠΡΠΎΡ ΠΏΠΎΡΠΎΠΊ stackoverflow ΠΏΠΎΠΌΠΎΠ³ ΠΌΠ½Π΅: http://stackoverflow.com/a/20582504/2418739
+1 ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. Π― Π±Ρ Ρ ΠΎΡΠ΅Π», ΡΡΠΎΠ±Ρ ΡΡΠΎ Π±ΡΠ»ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ GORM.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π― Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. Π Π΅ΡΠ΅Π½ΠΈΠ΅ @bramp ΠΏΠΎ- ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π΄Π°Π»ΠΎ ΠΌΠ½Π΅ ΠΎΡΠΈΠ±ΠΊΡ. ΠΠ»Ρ ΠΌΠ΅Π½Ρ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π Π°Π·Π½ΠΈΡΠ° Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ
[]byte
Π²ΠΌΠ΅ΡΡΠΎstring
. ΠΡΠΎΡ ΠΏΠΎΡΠΎΠΊ stackoverflow ΠΏΠΎΠΌΠΎΠ³ ΠΌΠ½Π΅: http://stackoverflow.com/a/20582504/2418739