donglongqiao9595
donglongqiao9595
2016-09-06 10:36

Golang:Gorm对非Gorm迁移表使用Find(&model)

已采纳

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{})?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • dongluan1743 dongluan1743 5年前

    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"
    }
    
    点赞 评论 复制链接分享
  • drxv39706 drxv39706 5年前

    Found the solution:

    func(TableGo) TableName() string {
        return "account_status"
    }
    
    点赞 评论 复制链接分享

相关推荐