Mabye有人用gorm lib执行更简单的代码执行sql文件吗?
// 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))
}
答案 0 :(得分:0)
当执行一个充满语句的SQL文件时,现有的sql命令行客户端不只是将文件内容发送到服务器。相反,他们会解析文件并发出单独的声明。
如果要复制此功能,则需要自己将文件解析为单个语句并执行它们。
最简单的方法是调用外部命令行客户端。
例如,对于postgresql,您应该exec类似psql [connection args] -f <sql file>
。