Лучшее решение для исполнения sql файла от golang gorm lib

Может, у кого-нибудь есть более простой код для выполнения sql файла gorm lib?

// CARRIERS IMPORT
err := DB.Session.Model(model.Carriers{}).Count(&carriers).Error
if err != nil {
    panic(err)
} else if carriers == 0 {
    path, err := filepath.Abs("./dumps/carriers.sql")
    if err != nil {
        panic(err)
    }
    file, err := ioutil.ReadFile(path)
    if err != nil {
        panic(err)
    }
    DB.Session.Model(model.Carriers{}).Exec(string(file))
}

1 ответ

При выполнении файла SQL, полного операторов, существующие клиенты командной строки sql не просто отправляют содержимое файла на сервер. Вместо этого они анализируют файл и выдают отдельные операторы.

Если вы хотите повторить эту функцию, вам нужно будет самостоятельно разобрать файл в отдельные операторы и выполнить их.

Самый простой способ - вызвать внешний клиент командной строки. Например, для postgresql вы должны выполнить что-то вроде psql [connection args] -f <sql file>,

Другие вопросы по тегам