golang gorm lib执行sql文件的最佳解决方案

问题描述 投票:-3回答:1

也许有人有更简单的代码来执行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))
}
go go-gorm
1个回答
0
投票

当执行一个充满语句的SQL文件时,现有的sql命令行客户端不只是将文件内容发送到服务器。相反,他们解析文件并发出单独的语句。

如果要复制此功能,则需要自己将文件解析为单个语句并执行它们。

最简单的方法是调用外部命令行客户端。例如对于postgresql你应该execpsql [connection args] -f <sql file>

© www.soinside.com 2019 - 2024. All rights reserved.