mirror of https://github.com/go-gorm/gorm.git
fix: skip append relation field to default db value (#5885)
* fix: relation field returning * chore: gofumpt style
This commit is contained in:
parent
f931def33d
commit
d9525d4da4
|
@ -230,7 +230,7 @@ func ParseWithSpecialTableName(dest interface{}, cacheStore *sync.Map, namer Nam
|
|||
}
|
||||
|
||||
for _, field := range schema.Fields {
|
||||
if field.HasDefaultValue && field.DefaultValueInterface == nil {
|
||||
if field.DataType != "" && field.HasDefaultValue && field.DefaultValueInterface == nil {
|
||||
schema.FieldsWithDefaultDBValue = append(schema.FieldsWithDefaultDBValue, field)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package tests_test
|
|||
import (
|
||||
"testing"
|
||||
|
||||
"gorm.io/gorm"
|
||||
. "gorm.io/gorm/utils/tests"
|
||||
)
|
||||
|
||||
|
@ -224,3 +225,28 @@ func TestBelongsToAssociationForSlice(t *testing.T) {
|
|||
AssertAssociationCount(t, users[0], "Company", 0, "After Delete")
|
||||
AssertAssociationCount(t, users[1], "Company", 1, "After other user Delete")
|
||||
}
|
||||
|
||||
func TestBelongsToDefaultValue(t *testing.T) {
|
||||
type Org struct {
|
||||
ID string
|
||||
}
|
||||
type BelongsToUser struct {
|
||||
OrgID string
|
||||
Org Org `gorm:"default:NULL"`
|
||||
}
|
||||
|
||||
tx := DB.Session(&gorm.Session{})
|
||||
tx.Config.DisableForeignKeyConstraintWhenMigrating = true
|
||||
AssertEqual(t, DB.Config.DisableForeignKeyConstraintWhenMigrating, false)
|
||||
|
||||
tx.Migrator().DropTable(&BelongsToUser{}, &Org{})
|
||||
tx.AutoMigrate(&BelongsToUser{}, &Org{})
|
||||
|
||||
user := &BelongsToUser{
|
||||
Org: Org{
|
||||
ID: "BelongsToUser_Org_1",
|
||||
},
|
||||
}
|
||||
err := DB.Create(&user).Error
|
||||
AssertEqual(t, err, nil)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue