Reputation: 123
I am new at golang. I am trying to write in a specific database schema using GORM and database/sql package. Here is my struct
type Person struct {
gorm.Model
Name string
Age int
}
and my function to write in db is:
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})
}
My db is structured like this databaseName --schemaPeople --schemaVehicle --schemaPublic
When I compile, the data inserted goes to an new table in public schema, I want to insert an row in people schema. What am I doing wrong? Am I declaring the struct wrong? How I set the specific schema??
Upvotes: 1
Views: 2899
Reputation: 44360
In the gorm
you can denote the schema in the TableName()
method of your struct, for example:
type Person struct {
gorm.Model
Name string
Age int
}
func (Person) TableName() string {
return "people.persons"
}
Upvotes: 4