private void VisitTable(Table table, IgnoreRule rule)
        {
            var matcher = RuleMatcher <TableColumn> .Create(rule.Column);

            var matchedColumns = matcher.Get(table.TableColumns);

            foreach (var matchedColumn in matchedColumns)
            {
                RemoveColumn(table.TableColumns, matchedColumn);
            }
        }
        private void VisitSchema(Schema schema, IgnoreRule rule)
        {
            foreignKeysOfSchema = schema.Tables.SelectMany(t => t.TableConstraints.OfType <ForeignKey>()).ToList();
            var matcher = RuleMatcher <Table> .Create(rule.Table);

            var matchedTables = matcher.Get(schema.Tables);

            if (!MatchingHelper.IsMatchAll(rule.Column))
            {
                foreach (var table in matchedTables)
                {
                    VisitTable(table, rule);
                }
            }
            else
            {
                foreach (var table in matchedTables)
                {
                    RemoveTable(schema.Tables, table);
                }
            }
        }