MCPcopy Create free account
hub / github.com/actiontech/dtle / inspectTables

Method inspectTables

driver/oracle/extractor/extractor_oracle.go:445–632  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

443}
444
445func (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)

Callers 1

Calls 4

GetSchemasMethod · 0.80
GetTablesMethod · 0.80

Tested by

no test coverage detected