Как установить конкретную схему базы данных с Gorm? - PullRequest
0 голосов
/ 15 января 2019

Я разрабатываю приложение CRUD.Я читаю JSON из API и хочу записать этот JSON в базу данных с «database / sql» и GORM в специальной схеме struct:

type Veiculo struct {
gorm.Model
Codigo                int       `json:"vei_codigo"`
Placa                 string    `json:"vei_placa"`
Nome                  string    `json:"vei_nome"`
}

функция конечной точки:

func CreateVeiculo(c *gin.Context) {

var veiculo model.Veiculo
//id := c.Params.ByName("id")

c.BindJSON(&veiculo)
c.JSON(200, veiculo)

psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+" password=%s dbname=%s sslmode=disable", host, port, user, password, dbname)
dbVeiculosGorm, err := gorm.Open("postgres", psqlInfo)
if err != nil {
    panic(err)
}
defer dbVeiculosGorm.Close()

dbVeiculosGorm.AutoMigrate(&model.Veiculo{})

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

dbVeiculosGorm.Create(&model.Veiculo{Placa: veiculo.Placa, Nome: veiculo.Nome}

но база данных неприкосновенна.Существует несколько схем.Должен ли я установить конкретную схему?Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

перед автоматикой сделай

gorm.DefaultTableNameHandler = func(dbVeiculosGorm *gorm.DB, defaultTableName string) string {
    return "your schema name." + defaultTableName
}

dbVeiculosGorm.AutoMigrate(&model.Veiculo{})
0 голосов
/ 15 января 2019

Вот базовый пример практически всего, что вам нужно, чтобы вставить простые данные
в PostgreSQL базу данных через gorm .

main.go

package main

import (
    "log"
    "github.com/jinzhu/gorm"
    _ "github.com/jinzhu/gorm/dialects/postgres" // Don't forget the dialect
)

// Simple Example model
type FuelType struct {
    gorm.Model // Gorm default columns (id, created_at, updated_at, deleted_at)
    Name string
}

func main() {
    // Database initialization
    db, err := gorm.Open(
        "postgres",
        "host=localhost port=5432 user=postgres dbname=foo password=bar sslmode=disable",
    )
    if err != nil {
        log.Fatalln("Can't connect to the db: ", err)
    }
    defer func() {
        if err := db.Close(); err != nil {
            log.Fatalln("Can't close the db connection: ", err)
        }
    }()

    // Migration
    db.AutoMigrate(&FuelType{})

    // Insertion
    fuelType := FuelType{Name: "100 GFuel"}
    db.Create(&fuelType)
}
...