Refact code

This commit is contained in:
Jinzhu 2014-08-28 18:53:27 +08:00
parent d806b7084f
commit f984bc8515
4 changed files with 12 additions and 14 deletions

View File

@ -3,18 +3,17 @@ package gorm_test
import "testing"
type BasePost struct {
Id int64
Title string
Url string
}
type HNPost struct {
Id int64
BasePost `gorm:"embedded"`
Upvotes int32
}
type EngadgetPost struct {
Id int64
BasePost
ImageUrl string
}

View File

@ -26,7 +26,7 @@ func Create(scope *Scope) {
var sqls, columns []string
for _, field := range scope.Fields() {
if len(field.SqlTag) > 0 && !field.IsIgnored && (field.DBName != scope.PrimaryKey() || !scope.PrimaryKeyZero()) {
if len(field.SqlTag) > 0 && !field.IsIgnored && (!field.IsPrimaryKey || !scope.PrimaryKeyZero()) {
columns = append(columns, scope.Quote(field.DBName))
sqls = append(sqls, scope.AddToVars(field.Value))
}

View File

@ -50,7 +50,7 @@ func Update(scope *Scope) {
}
} else {
for _, field := range scope.Fields() {
if field.DBName != scope.PrimaryKey() && len(field.SqlTag) > 0 && !field.IsIgnored {
if !field.IsPrimaryKey && len(field.SqlTag) > 0 && !field.IsIgnored {
sqls = append(sqls, fmt.Sprintf("%v = %v", scope.Quote(field.DBName), scope.AddToVars(field.Value)))
}
}

View File

@ -11,15 +11,14 @@ func runMigration() {
fmt.Printf("Got error when try to delete table users, %+v\n", err)
}
DB.Exec("drop table products;")
DB.Exec("drop table emails;")
DB.Exec("drop table addresses")
DB.Exec("drop table credit_cards")
DB.Exec("drop table roles")
DB.Exec("drop table companies")
DB.Exec("drop table animals")
DB.Exec("drop table user_languages")
DB.Exec("drop table languages")
for _, table := range []string{"animals", "user_languages"} {
DB.Exec(fmt.Sprintf("drop table %v;", table))
}
values := []interface{}{&Product{}, &Email{}, &Address{}, &CreditCard{}, &Company{}, &Role{}, &Language{}, &HNPost{}, &EngadgetPost{}}
for _, value := range values {
DB.DropTable(value)
}
if err := DB.CreateTable(&Animal{}).Error; err != nil {
panic(fmt.Sprintf("No error should happen when create table, but got %+v", err))
@ -29,7 +28,7 @@ func runMigration() {
panic(fmt.Sprintf("No error should happen when create table, but got %+v", err))
}
if err := DB.AutoMigrate(&Product{}, &Email{}, &Address{}, &CreditCard{}, &Company{}, &Role{}, &Language{}, &HNPost{}, &EngadgetPost{}).Error; err != nil {
if err := DB.AutoMigrate(values...).Error; err != nil {
panic(fmt.Sprintf("No error should happen when create table, but got %+v", err))
}
}