Лучшее решение для исполнения 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>
,