Gorm: Alterar o nome das colunas geradas padrão

Criado em 18 mai. 2017  ·  3Comentários  ·  Fonte: go-gorm/gorm

Olá, é possível substituir o nome das colunas: ID, created_at, updated_at, deleted_at?

Pelo que sei, posso definir por exemplo o nome da tabela com a função:

func (StructType) TableName() string {
    return "MyCustomName"
}

É possível, mas com as colunas? isso ocorre porque o modelo de dados do projeto já estabeleceu os nomes dos campos, e por exemplo não temos _atualizado_at_ mas sim _ModificationTimestamp_ então, como posso fazer isso?

Comentários muito úteis

Apenas não incorpore o modo padrão em sua estrutura. Se você olhar como está definido, verá:

type Model struct {
    ID        uint `gorm:"primary_key"`
    CreatedAt time.Time
    UpdatedAt time.Time
    DeletedAt *time.Time `sql:"index"`
}

Você pode definir esses campos em seu próprio modelo ou criar seu próprio modelo base com nomes diferentes e incorporá-lo.

Todos 3 comentários

http://jinzhu.me/gorm/models.html#conventions

// Overriding Column Name
type Animal struct {
    AnimalId    int64     `gorm:"column:beast_id"`         // set column name to `beast_id`
    Birthday    time.Time `gorm:"column:day_of_the_beast"` // set column name to `day_of_the_beast`
    Age         int64     `gorm:"column:age_of_the_beast"` // set column name to `age_of_the_beast`
}

@smacker Oi, obrigado. Mas estou tentando fazer com que gorm tome outro nome para as colunas que são autocreated: created_at, updated_at, id. Tentei o que você disse mas deu erro porque por exemplo a coluna created_at já está especificada:
column "created_at" specified more than once)

Apenas não incorpore o modo padrão em sua estrutura. Se você olhar como está definido, verá:

type Model struct {
    ID        uint `gorm:"primary_key"`
    CreatedAt time.Time
    UpdatedAt time.Time
    DeletedAt *time.Time `sql:"index"`
}

Você pode definir esses campos em seu próprio modelo ou criar seu próprio modelo base com nomes diferentes e incorporá-lo.

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

Questões relacionadas

superwf picture superwf  ·  3Comentários

izouxv picture izouxv  ·  3Comentários

Quentin-M picture Quentin-M  ·  3Comentários

RadhikaBhat picture RadhikaBhat  ·  3Comentários

hypertornado picture hypertornado  ·  3Comentários