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