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(), "...")
        }
    }
}

谢谢你的提示!

在星期四,2014年1月2日在下午1时49分,金珠[email protected]写道:

关闭 #38 https://github.com/jinzhu/gorm/issues/38。


直接回复本邮件或在Gi tHub上查看
.

现在,你有解决它的新方法吗?
谢谢。 @金珠

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

bramp picture bramp  ·  3评论

hypertornado picture hypertornado  ·  3评论

pjebs picture pjebs  ·  3评论

fieryorc picture fieryorc  ·  3评论

Ganitzsh picture Ganitzsh  ·  3评论