diff --git a/session_schema.go b/session_schema.go index 738c831a..7d0e04a0 100644 --- a/session_schema.go +++ b/session_schema.go @@ -339,9 +339,15 @@ func (session *Session) Sync2(beans ...interface{}) error { } } } + if col.Default != oriCol.Default { - engine.logger.Warnf("Table %s Column %s db default is %s, struct default is %s", - tbName, col.Name, oriCol.Default, col.Default) + if (col.SQLType.Name == core.Bool || col.SQLType.Name == core.Boolean) && + ((col.Default == "true" && oriCol.Default == "1") || + (col.Default == "false" && oriCol.Default == "0")) { + } else { + engine.logger.Warnf("Table %s Column %s db default is %s, struct default is %s", + tbName, col.Name, oriCol.Default, col.Default) + } } if col.Nullable != oriCol.Nullable { engine.logger.Warnf("Table %s Column %s db nullable is %v, struct nullable is %v", diff --git a/session_schema_test.go b/session_schema_test.go index 5a0fca2e..81f3a7ed 100644 --- a/session_schema_test.go +++ b/session_schema_test.go @@ -307,3 +307,16 @@ func TestSync2_2(t *testing.T) { assert.True(t, tableNames[table.Name]) } } + +func TestSync2_Default(t *testing.T) { + type TestSync2Default struct { + Id int64 + UserId int64 `xorm:"default(1)"` + IsMember bool `xorm:"default(true)"` + Name string `xorm:"default('my_name')"` + } + + assert.NoError(t, prepareEngine()) + assertSync(t, new(TestSync2Default)) + assert.NoError(t, testEngine.Sync2(new(TestSync2Default))) +}