go-gorm / gorm

The fantastic ORM library for Golang, aims to be developer friendly
https://gorm.io
MIT License
36.97k stars 3.93k forks source link

Struct Tags/Fields Tags not work when call db.AutoMigrate() #7282

Open Scythemen opened 2 hours ago

Scythemen commented 2 hours ago

ENV:

go version go1.22.8 darwin/amd64 "gorm.io/driver/sqlite v1.4.4" "gorm.io/gorm v1.25.12"

Define the model for sqlite table

type Book struct {
    ID         int64     `gorm:"column:id;primaryKey;autoIncrement"`
    Description   string    `gorm:"column:old_value;type:text;size:128"`
    Name   string    `gorm:"column:new_value;type:varchar(60)"`
    Price      float32   `gorm:"column:price;size:12;precision:3"`
}

After calling db.AutoMigrate(&Book{}), the result in sqlite3 db:

type Book struct {
    ID         int64     `gorm:"column:id;primaryKey;autoIncrement"`   // <-- pkey correct but no auto increment
    Description   string    `gorm:"column:old_value;type:text;size:128"`  // <-- column data type is text, but the size is empty not set length to 128
    Name   string    `gorm:"column:new_value;type:varchar(60)"`  // <-- the column data type is varchar, and the size is 60
    Price      float32   `gorm:"column:price;size:12;precision:3"`   // <-- the column data type is real, no size no precision/scale 
}

Did I miss sth? or some tags are options and has no effect to the data migration?

github-actions[bot] commented 2 hours ago

The issue has been automatically marked as stale as it missing playground pull request link, which is important to help others understand your issue effectively and make sure the issue hasn't been fixed on latest master, checkout https://github.com/go-gorm/playground for details. it will be closed in 30 days if no further activity occurs. if you are asking question, please use the Question template, most likely your question already answered https://github.com/go-gorm/gorm/issues or described in the document https://gorm.ioSearch Before Asking