@@ -12,6 +12,7 @@ import (
1212 "github.com/raystack/meteor/models"
1313 meteorv1beta1 "github.com/raystack/meteor/models/raystack/meteor/v1beta1"
1414 "github.com/raystack/meteor/plugins"
15+ "github.com/raystack/meteor/plugins/sqlutil"
1516 "github.com/raystack/meteor/registry"
1617 log "github.com/raystack/salt/observability/logger"
1718)
@@ -67,9 +68,10 @@ func WithClient(redshiftClient redshiftdataapiserviceiface.RedshiftDataAPIServic
6768// from the redshift server
6869type Extractor struct {
6970 plugins.BaseExtractor
70- config Config
71- logger log.Logger
72- client redshiftdataapiserviceiface.RedshiftDataAPIServiceAPI
71+ config Config
72+ logger log.Logger
73+ client redshiftdataapiserviceiface.RedshiftDataAPIServiceAPI
74+ excludedDbs map [string ]bool
7375}
7476
7577// New returns a pointer to an initialized Extractor Object
@@ -93,6 +95,8 @@ func (e *Extractor) Init(ctx context.Context, config plugins.Config) error {
9395 return err
9496 }
9597
98+ e .excludedDbs = sqlutil .BuildBoolMap (e .config .Exclude .Databases )
99+
96100 if e .client == nil {
97101 // Create session
98102 sess := session .Must (session .NewSession ())
@@ -112,6 +116,9 @@ func (e *Extractor) Extract(_ context.Context, emit plugins.Emit) error {
112116 }
113117
114118 for _ , database := range listDB {
119+ if e .excludedDbs [database ] {
120+ continue
121+ }
115122 tables , err := e .GetTables (database )
116123 if err != nil {
117124 e .logger .Error ("failed to get tables, skipping database" , "error" , err )
0 commit comments