简体   繁体   中英

Golang: gorm use Find(&model) for non gorm migrate table

There is table customer_account ( postgres ) which one was migrate from YII2.

DDL:

CREATE TABLE public.test_table (
  id INTEGER PRIMARY KEY NOT NULL DEFAULT nextval('test_table_id_seq'::regclass),
  data JSONB
);

In go project i try to get value from this table.

type TableGo struct {
    Id int
    Data string `gorm:"type:jsonb"`
}

    table := TableGo{}
    db.Where("id = ?", 75).Find(&table)
    println(table.Data)

But there is (pq: relation "table_gos" does not exist)

How i can link structure which table without db.AutoMigrate(&TableGo{}) ?

Found the solution:

func(TableGo) TableName() string {
    return "account_status"
}

I think table name in your migration script is wrong. Because it is not in GORM convention. If you want to use that name,you can use following method in your model for custom table name.

func (m *Model) TableName() string {
    return "custom_table_name"
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM