Gorm: すべての構造体を自動的に自動移行します

作成日 2014年01月02日  ·  3コメント  ·  ソース: go-gorm/gorm

すべての構造体を自動的に自動移行することは可能ですか?

現在、移行する各構造体の名前をこの関数に渡す必要があるようですhttps://github.com/jinzhu/gorm/blob/690cb1430c2e27011324c51826301a7daf728e65/main.go#L261

最も参考になるコメント

gormは移行する構造体を認識できないため、これを自動的に行うことはできません。

しかし、私は自分のアプリケーションでこのようなことをしています。

package main

import (
    "fmt"
    . "xxx.com/xxxx/xxxx/app/models"
    . "xxx.com/xxxx/xxxx/db"
    "reflect"
)

func main() {
    for _, model := range []interface{}{
        Payment{}, Invoice{}, Transaction{},
        SubscriptionService{}, SubscriptionBenefit{}, Subscription{},
        Address{}, User{}, UserService{},
        Service{},
    } {
        if err := DB.AutoMigrate(model).Error; err != nil {
            fmt.Println(err)
        } else {
            fmt.Println("Auto migrating", reflect.TypeOf(model).Name(), "...")
        }
    }
}

全てのコメント3件

gormは移行する構造体を認識できないため、これを自動的に行うことはできません。

しかし、私は自分のアプリケーションでこのようなことをしています。

package main

import (
    "fmt"
    . "xxx.com/xxxx/xxxx/app/models"
    . "xxx.com/xxxx/xxxx/db"
    "reflect"
)

func main() {
    for _, model := range []interface{}{
        Payment{}, Invoice{}, Transaction{},
        SubscriptionService{}, SubscriptionBenefit{}, Subscription{},
        Address{}, User{}, UserService{},
        Service{},
    } {
        if err := DB.AutoMigrate(model).Error; err != nil {
            fmt.Println(err)
        } else {
            fmt.Println("Auto migrating", reflect.TypeOf(model).Name(), "...")
        }
    }
}

ヒントをありがとう!

1:49 PMの木、2014年1月2日には、Jinzhuの[email protected]書きました:

クローズ#38https ://github.com/jinzhu/gorm/issues/38。


このメールに直接返信するか、 GitHubで表示して

さて、それを解決するための新しい方法はありますか?
ありがとう。 @jinzhu

このページは役に立ちましたか?
0 / 5 - 0 評価