Merge branch 'lichang' into lite
This commit is contained in:
@@ -53,11 +53,11 @@ func initFlag() {
|
||||
if *pVersion {
|
||||
buildInfo := fmt.Sprintf("OMC \nBuildVer: %s\nBuildTime: %s\nBuildEnv: %s\n", Version, BuildTime, GoVer)
|
||||
fmt.Println(buildInfo)
|
||||
os.Exit(1)
|
||||
os.Exit(0)
|
||||
}
|
||||
if *pHelp {
|
||||
pflag.Usage()
|
||||
os.Exit(1)
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
conf.BindPFlags(pflag.CommandLine)
|
||||
@@ -80,7 +80,7 @@ func initViper(configDir *embed.FS) {
|
||||
|
||||
// 当期服务环境运行配置 => local
|
||||
env := conf.GetString("env")
|
||||
log.Printf("current service environment configuration => %s \n", env)
|
||||
// log.Printf("current service environment configuration => %s \n", env)
|
||||
|
||||
// 加载运行配置文件合并相同配置
|
||||
envConfigPath := fmt.Sprintf("config/config.%s.yaml", env)
|
||||
|
||||
@@ -60,7 +60,7 @@ func ImportSQL() {
|
||||
processSQLFile(db, sqlPath)
|
||||
}
|
||||
|
||||
log.Println("process success")
|
||||
// log.Println("process success")
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
@@ -93,11 +93,17 @@ func processSQLFile(db *gorm.DB, filePath string) {
|
||||
if strings.HasSuffix(line, ";") {
|
||||
// 执行 SQL 语句
|
||||
if err := db.Exec(sqlBuilder.String()).Error; err != nil {
|
||||
errorStr := err.Error()
|
||||
if strings.Contains(strings.ToLower(errorStr), "duplicate column") {
|
||||
// 重复字段错误忽略
|
||||
// log.Printf("Exec SQL: %s\n", line)
|
||||
// log.Println(err.Error())
|
||||
errorStr := strings.ToLower(err.Error())
|
||||
// log.Printf("Exec SQL: %s\n", line)
|
||||
// log.Println(err.Error())
|
||||
if strings.Contains(errorStr, "duplicate column") {
|
||||
// 忽略重复字段错误 Error 1060 (42S21): Duplicate column name 'field_name'
|
||||
} else if strings.Contains(errorStr, "duplicate key") {
|
||||
// 忽略重复索引错误 Error 1061 (42000): Duplicate key name 'key_name'
|
||||
} else if strings.Contains(errorStr, "unknown column") {
|
||||
// 忽略未知字段错误 Error 1054 (42S22): Unknown column 'field_name' in 'table'
|
||||
} else if strings.Contains(errorStr, "check that it exists") {
|
||||
// 忽略删除字段错误 Error 1091 (42000): Can't DROP COLUMN `field_name`; check that it exists
|
||||
} else {
|
||||
// 其他错误终止程序
|
||||
log.Fatalln(errorStr)
|
||||
|
||||
@@ -6,25 +6,23 @@ import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"be.ems/src/framework/logger"
|
||||
)
|
||||
|
||||
// WriterFileTXT 写入txt文件 sep 分割符号 需要转换数据
|
||||
// WriterFileTXTLine 逐行写入txt文件 sep 分割符号 需要转换数据
|
||||
//
|
||||
// 例如:
|
||||
// data := [][]string{}
|
||||
// data = append(data, []string{"姓名", "年龄", "城市"})
|
||||
// data = append(data, []string{"1", "2", "3"})
|
||||
// err := file.WriterFileTXT(data, filePath)
|
||||
func WriterFileTXT(data [][]string, sep string, filePath string) error {
|
||||
func WriterFileTXTLine(data [][]string, sep string, filePath string) error {
|
||||
// 获取文件所在的目录路径
|
||||
dirPath := filepath.Dir(filePath)
|
||||
|
||||
// 确保文件夹路径存在
|
||||
err := os.MkdirAll(dirPath, 0775)
|
||||
if err != nil {
|
||||
logger.Errorf("CreateFile MkdirAll %v", err)
|
||||
return err
|
||||
}
|
||||
|
||||
// 创建或打开文件
|
||||
@@ -44,21 +42,19 @@ func WriterFileTXT(data [][]string, sep string, filePath string) error {
|
||||
// 将缓冲区中的数据刷新到文件中
|
||||
err = writer.Flush()
|
||||
if err != nil {
|
||||
logger.Errorf("CreateFile Flush %v", err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// ReadFileTXT 读取Txt文件,sep 分割符号 转换数组数据
|
||||
func ReadFileTXT(sep string, filePath string) [][]string {
|
||||
// ReadFileTXTLine 逐行读取Txt文件,sep 分割符号 转换数组数据
|
||||
func ReadFileTXTLine(sep string, filePath string) [][]string {
|
||||
// 创建 map 存储数据
|
||||
arr := make([][]string, 0)
|
||||
|
||||
// 打开文本文件
|
||||
file, err := os.Open(filePath)
|
||||
if err != nil {
|
||||
logger.Errorf("OpenFile Open %v", err)
|
||||
return arr
|
||||
}
|
||||
defer file.Close()
|
||||
@@ -66,7 +62,6 @@ func ReadFileTXT(sep string, filePath string) [][]string {
|
||||
// 创建一个 Scanner 对象,用于逐行读取文件内容
|
||||
scanner := bufio.NewScanner(file)
|
||||
if scanner.Err() != nil {
|
||||
logger.Errorf("OpenFile NewScanner %v", scanner.Err())
|
||||
return arr
|
||||
}
|
||||
|
||||
@@ -78,3 +73,32 @@ func ReadFileTXT(sep string, filePath string) [][]string {
|
||||
|
||||
return arr
|
||||
}
|
||||
|
||||
// WriterFileTXT 写入txt文件
|
||||
//
|
||||
// 例如:
|
||||
// err := file.WriterFileTXT("", filePath)
|
||||
func WriterFileTXT(text string, filePath string) error {
|
||||
// 获取文件所在的目录路径
|
||||
dirPath := filepath.Dir(filePath)
|
||||
|
||||
// 确保文件夹路径存在
|
||||
err := os.MkdirAll(dirPath, 0775)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 创建或打开文件
|
||||
file, err := os.Create(filePath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
// 将缓冲区中的数据刷新到文件中
|
||||
_, err = file.WriteString(text)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user