()
| 443 | } |
| 444 | |
| 445 | func (e *ExtractorOracle) inspectTables() (err error) { |
| 446 | // Creates a MYSQL Dump based on the options supplied through the dumper. |
| 447 | dbsExisted, err := e.oracleDB.GetSchemas() // todo merged |
| 448 | if err != nil { |
| 449 | return err |
| 450 | } |
| 451 | dbsFiltered := []string{} |
| 452 | for _, db := range dbsExisted { |
| 453 | if len(e.mysqlContext.ReplicateIgnoreDb) > 0 && common.IgnoreDbByReplicateIgnoreDb(e.mysqlContext.ReplicateIgnoreDb, db) { |
| 454 | continue |
| 455 | } |
| 456 | dbsFiltered = append(dbsFiltered, db) |
| 457 | } |
| 458 | |
| 459 | if len(e.mysqlContext.ReplicateDoDb) > 0 { |
| 460 | var doDbs []*common.DataSource |
| 461 | // Get all db from TableSchemaRegex regex and get all tableSchemaRename |
| 462 | for _, doDb := range e.mysqlContext.ReplicateDoDb { |
| 463 | var regex string |
| 464 | if doDb.TableSchemaRegex != "" && doDb.TableSchemaRename != "" { |
| 465 | regex = doDb.TableSchemaRegex |
| 466 | schemaRenameRegex := doDb.TableSchemaRename |
| 467 | for _, db := range dbsFiltered { |
| 468 | newdb := &common.DataSource{} |
| 469 | *newdb = *doDb |
| 470 | reg, err := regexp.Compile(regex) |
| 471 | if err != nil { |
| 472 | return errors.Wrapf(err, "SchemaRegex %v", regex) |
| 473 | } |
| 474 | if !reg.MatchString(db) { |
| 475 | continue |
| 476 | } |
| 477 | newdb.TableSchema = db |
| 478 | match := reg.FindStringSubmatchIndex(db) |
| 479 | newdb.TableSchemaRename = string(reg.ExpandString(nil, schemaRenameRegex, db, match)) |
| 480 | doDbs = append(doDbs, newdb) |
| 481 | } |
| 482 | //if doDbs == nil { |
| 483 | // return fmt.Errorf("src schmea was nil") |
| 484 | //} |
| 485 | } else if doDb.TableSchemaRegex == "" { // use doDb.TableSchema |
| 486 | for _, db := range dbsFiltered { |
| 487 | if db == doDb.TableSchema { |
| 488 | doDbs = append(doDbs, doDb) |
| 489 | } |
| 490 | } |
| 491 | } else { |
| 492 | return fmt.Errorf("TableSchema configuration error") |
| 493 | } |
| 494 | } |
| 495 | for _, doDb := range doDbs { |
| 496 | db := &common.DataSource{ |
| 497 | TableSchema: doDb.TableSchema, |
| 498 | TableSchemaRegex: doDb.TableSchemaRegex, |
| 499 | TableSchemaRename: doDb.TableSchemaRename, |
| 500 | } |
| 501 | |
| 502 | existedTables, err := e.oracleDB.GetTables(doDb.TableSchema) |
no test coverage detected