Redgate Flyway

Oracle Golden Gate database tables are not automatically ignored

Problem

Golden Gate is a database replication technology supplied by Oracle. When installed, it adds some special tables to your database and adds some special columns to your tables.

The Oracle comparison engine automatically excludes the Golden Gate columns from all database comparisons but it does not automatically exclude Golden Gate tables. It is very unlikely that you would want to include Golden Gate tables in a database comparison.

Golden Gate tables begin with the characters: DT$_

Solution

Using Flyway Desktop

Go to the "Schema Model " Page

Click "Configure comparison"

Go to the "Filters" tab

Click "Add Rule"

Select Tables from the "Select object type" drop-down list

Select "Exclude when"

Type ^DT\$_ in the "Regex pattern"

Click "Save".

This means that tables that begin with DT$_ will not be included in your comparison.


Using the Command Line (CLI)

Create a filter file (e.g. IgnoreRulesFile.scpf) or add a filter rule to your existing filter file if you have one:

Contents of example filter file:

{
  "filters": {
    "table": [
      "\!^DT\$_"
    ]
  }
}

Explanation of \!^DT\$_:
\! = negation
^ = start with
the \ between T and $ escapes the $ character.

Use the Oracle Ignore Rules Setting on the flyway diff command e.g.

./flyway diff -redgateCompare.oracle.ignoreRules=ignoreRulesFile.scpf



Didn't find what you were looking for?