| | |
| | | |
| | | func ExecuteSqlByGorm(sqls []string) (bool,error) { |
| | | if localDb != nil { |
| | | localDb.LogMode(false) |
| | | defer localDb.LogMode(true) |
| | | var err error |
| | | tx := localDb.Begin() |
| | | defer func() { |
| | |
| | | }() |
| | | for _,sql :=range sqls { |
| | | result := tx.Exec(sql) |
| | | if result.Error !=nil { |
| | | err = result.Error |
| | | if err !=nil { |
| | | return false,result.Error |
| | | } |
| | | if result.RowsAffected == 0{ |
| | |
| | | Pk int `json:"pk"` |
| | | } |
| | | |
| | | type DumpSql struct { |
| | | Sql string `json:"sql"` |
| | | } |
| | | |
| | | func ExecuteQueryByGorm(tableNames []string) ([]string, error) { |
| | | localDb.LogMode(false) |
| | | defer localDb.LogMode(true) |
| | | if tableNames !=nil { |
| | | var arr []string |
| | | var dumpSql []DumpSql |
| | | for _,table :=range tableNames { |
| | | dumpSql = make([]DumpSql, 0) |
| | | var tDescArr []TableDesc |
| | | tSql := fmt.Sprintf(`PRAGMA table_info("%s")`, table) |
| | | err := localDb.Raw(tSql).Scan(&tDescArr).Error |
| | |
| | | for _,col :=range tDescArr { |
| | | columnNames = append(columnNames, fmt.Sprintf(`'||quote("%s")||'`, col.Name)) |
| | | } |
| | | tSql = fmt.Sprintf(`SELECT 'INSERT INTO "%s" VALUES(%s)' FROM "%s";`, |
| | | tSql = fmt.Sprintf(`SELECT 'INSERT INTO "%s" VALUES(%s)' as sql FROM "%s";`, |
| | | table, |
| | | strings.Join(columnNames, ","), |
| | | table) |
| | | var dumpSqls []string |
| | | err = localDb.Raw(tSql).Scan(&dumpSqls).Error |
| | | fmt.Println("tSql:",tSql) |
| | | |
| | | err = localDb.Raw(tSql).Scan(&dumpSql).Error |
| | | if err !=nil { |
| | | return nil,errors.New("dump err") |
| | | continue |
| | | } |
| | | arr = append(arr, dumpSqls...) |
| | | if len(dumpSql)>0 { |
| | | for _,d :=range dumpSql { |
| | | arr = append(arr, d.Sql) |
| | | } |
| | | } |
| | | |
| | | } |
| | | return arr,nil |
| | | } |