Gorm: Automigrar todas as estruturas automaticamente

Criado em 2 jan. 2014  ·  3Comentários  ·  Fonte: go-gorm/gorm

É possível migrar automaticamente todas as estruturas automaticamente?

Atualmente, parece que o nome de cada estrutura a ser migrada precisa ser passado para esta função https://github.com/jinzhu/gorm/blob/690cb1430c2e27011324c51826301a7daf728e65/main.go#L261

Comentários muito úteis

Porque o gorm não pode saber qual estrutura você deseja migrar, então não pode fazer isso automaticamente.

Mas estou fazendo algo assim em meu aplicativo.

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

Todos 3 comentários

Porque o gorm não pode saber qual estrutura você deseja migrar, então não pode fazer isso automaticamente.

Mas estou fazendo algo assim em meu aplicativo.

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

Obrigado pela dica!

Na quinta-feira, 2 de janeiro de 2014 às 13h49, Jinzhu [email protected] escreveu:

Closed # 38 https://github.com/jinzhu/gorm/issues/38.

-
Responda a este e-mail diretamente ou visualize-o em Gi tHubhttps: //github.com/jinzhu/gorm/issues/38
.

Agora, você tem um novo método para resolver isso?
Obrigado. @jinzhu

Esta página foi útil?
0 / 5 - 0 avaliações