如何使用gorm在指定的数据库模式中编写代码?

时间:2019-01-16 10:08:48

标签: database go go-gorm

我是golang的新手。我正在尝试使用GORM和database / sql包在特定的数据库架构中编写。 这是我的结构

type Person struct {
gorm.Model
Name                string    
Age                 int    
}

我写在db中的函数是:

func writedb(){

psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+" password=%s dbname=%s sslmode=disable", host, port, user, password, dbname)
    db, err := gorm.Open("postgres", psqlInfo)
    if err != nil {
        panic(err)
        fmt.Println("Não conectou-se ao BANCO DE DADOS")
    }
    defer db.Close()

    db.AutoMigrate(&Person{})

    //t := time.Now()
    //ts := t.Format("2006-01-02 15:04:05")

    db.Create(&Person{Name : "alex", Age: 20})


}

我的数据库的结构如下 数据库名称 --schema人 --schema车辆 --schemaPublic

编译时,插入的数据将进入公共架构中的新表,我想在人员架构中插入一行。我究竟做错了什么?我是否声明结构错误?我如何设置特定的架构?

1 个答案:

答案 0 :(得分:0)

gorm中,您可以在结构的TableName()方法中表示模式,例如:

type Person struct {
    gorm.Model
    Name string
    Age  int
}

func (Person) TableName() string {
    return "people.persons"
}