From 9757958106b406a674242373e4f2c12df6e1db12 Mon Sep 17 00:00:00 2001 From: Jinzhu Date: Mon, 9 Feb 2015 21:14:48 +0800 Subject: [PATCH] Fix pointers for AutoMigrate --- field.go | 6 +++++- scope_private.go | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/field.go b/field.go index af278e44..0f9bb611 100644 --- a/field.go +++ b/field.go @@ -34,7 +34,11 @@ func (field *Field) IsScanner() bool { } func (field *Field) IsTime() bool { - _, isTime := field.Field.Interface().(time.Time) + reflectValue := field.Field + if reflectValue.Kind() == reflect.Ptr { + reflectValue = reflect.New(reflectValue.Type().Elem()).Elem() + } + _, isTime := reflectValue.Interface().(time.Time) return isTime } diff --git a/scope_private.go b/scope_private.go index 79e00ee2..05f6671a 100644 --- a/scope_private.go +++ b/scope_private.go @@ -393,6 +393,9 @@ func (scope *Scope) sqlTagForField(field *Field) (typ string) { value := field.Field.Interface() reflectValue := field.Field + if reflectValue.Kind() == reflect.Ptr { + reflectValue = reflect.New(reflectValue.Type().Elem()).Elem() + } switch reflectValue.Kind() { case reflect.Slice: