Author |
Message |
gemisigo
Joined: 11 Mar 2010 Posts: 2165
|
|
FR: Schema Comparison improvements |
|
It could prove rather useful if it was possible to save comparison settings (whether it should compare Users, Roles, etc. or not and what to ignore.) for Schema Compare, so that they could be remembered and reused and not have to set them each time. It could also have a factory default and and a user default as well.
Another useful improvement would be a sophisticated object filter. Beyond the one already existing that only allows filtering on the objects shown, of course. It could automatically hide/exclude objects meeting given criteria (eg. when not much sense of syncing objects in 'test' schema, the filter could exclude objects therein without having to scan the comparison results by naked eye and unselecting stuff that's in that particular schema, on not wanting to sync stored procedures with certain prefixes or suffixes, etc.).
|
|
Thu Jan 26, 2017 6:13 am |
|
 |
SysOp
Site Admin
Joined: 26 Nov 2006 Posts: 7948
|
|
|
|
Thank you very much for your suggestions.
How would you define a filter for a test schema objects? A mask? A specific list of individually selected objects to compare? How does that work with identifying missing objects, considering it's a two way comparison?
|
|
Thu Jan 26, 2017 11:23 am |
|
 |
SysOp
Site Admin
Joined: 26 Nov 2006 Posts: 7948
|
|
|
|
FYI, version 9.1 will support exporting comparison results to Excel and reports where custom filtering can be applied after comparison. You may find it useful.
|
|
Thu Jan 26, 2017 11:32 am |
|
 |
gemisigo
Joined: 11 Mar 2010 Posts: 2165
|
|
|
|
 |
 |
Thank you very much for your suggestions.
How would you define a filter for a test schema objects? A mask? A specific list of individually selected objects to compare? How does that work with identifying missing objects, considering it's a two way comparison? |
I saw there are queries and query templates defined for comparison and you do already have to collect the objects you want to compare/sync. The filter would not be a simple mask or a list of objects, but a list of criteria the objects would have to meet to be included (or excluded, if that's desired). "All you'd have to do" is to define a bunch of criteria (like "only include when name equals to" or "exclude if name contains (like)" or "include if schema not equals to" and their friends, families, and relatives) and apply those (all of them, using AND/OR between the criteria themselves) to the queries retrieving the list of objects to be compared the same way you'd filter the result set eg. when you query the names of tables from sys.tables in SQL Server.
Having a general (global) set and being able to maintain a separate set of such criteria for each type of object would increase versatility and support automatization of comparison tasks. Which in turn would be a giant leap toward Continuous Integration by allowing the developers to tinker their own instance of the database like there's no tomorrow and produce the difference/version scripts to test/stage/production/whatever database in a semi-automatic manner.
While the comparison in two way, syncing is not (or at least should not be). Objects missing in destination are 'missing' because their 'not missing' variants are present in source and vice versa, therefore applying the filter(s) should have no influence on identification of missing objects. They should be still identified if their names/schema/other attributes comply to the filter. Comparison of filter-excluded items shouldn't happen regardless of the corresponding counterpart object is missing or not and for included ones the state of not exists would count as difference anyway.
 |
 |
FYI, version 9.1 will support exporting comparison results to Excel and reports where custom filtering can be applied after comparison. You may find it useful. |
You mean you could export the comparison results (that is, the objects that differ), or the scripts that would make the differences vanish? Or both?
Alas I've no longer Access to Excel :) hence it's not much of a help for me, but I think either of those could be good (though rather as a workaround than a solution).
|
|
Thu Jan 26, 2017 6:37 pm |
|
 |
SysOp
Site Admin
Joined: 26 Nov 2006 Posts: 7948
|
|
|
|
Thank you. I see now what you want for filtering. It certainly makes sense.
|
|
Thu Jan 26, 2017 7:50 pm |
|
 |
gemisigo
Joined: 11 Mar 2010 Posts: 2165
|
|
|
|
Were there any changes applied to this part? The filter seems to be rendered inoperable. All the objects are filtered out as soon as I enter the first letter into the editbox.
|
|
Wed Apr 05, 2017 7:22 am |
|
 |
SysOp
Site Admin
Joined: 26 Nov 2006 Posts: 7948
|
|
|
|
 |
 |
All the objects are filtered out as soon as I enter the first letter into the editbox. |
I'm unable to reproduce that, maybe I'm doing something else. Would you be able to provide a screenshot demonstrating this issue?
|
|
Thu Apr 06, 2017 1:57 am |
|
 |
gemisigo
Joined: 11 Mar 2010 Posts: 2165
|
|
|
|
Sure. Here they are.
Before:
After typing 'e' into Text:

|
|
Thu Apr 06, 2017 7:25 am |
|
 |
SysOp
Site Admin
Joined: 26 Nov 2006 Posts: 7948
|
|
|
|
We are still unable to reproduce that one

|
|
Thu Apr 13, 2017 11:05 pm |
|
 |
gemisigo
Joined: 11 Mar 2010 Posts: 2165
|
|
|
|
Try selecting the servers from a Connection Group instead of selecting them from All Connections.
|
|
Thu Apr 20, 2017 4:43 am |
|
 |
SysOp
Site Admin
Joined: 26 Nov 2006 Posts: 7948
|
|
|
|
I tried with connection groups and I'm still unable to reproduce it. Do filters work for you in other places, for example, in the Database Explorer pane?
|
|
Thu Apr 20, 2017 2:32 pm |
|
 |
gemisigo
Joined: 11 Mar 2010 Posts: 2165
|
|
|
|
They do. They do here as well, as long as connection groups are not involved. When the servers are taken from a connection group the magical vanishing happens.
|
|
Thu Apr 20, 2017 4:25 pm |
|
 |
SysOp
Site Admin
Joined: 26 Nov 2006 Posts: 7948
|
|
|
|
 |
 |
When the servers are taken from a connection group the magical vanishing happens. |
Maybe it's something related to how connection groups are setup or a combination of several different factors, or text encoding or something else used in the connection groups, which is specific to your setup. Would you mind sending your SA configuration file to support?
|
|
Mon Apr 24, 2017 1:26 am |
|
 |
gemisigo
Joined: 11 Mar 2010 Posts: 2165
|
|
|
|
Did you find anything about this one?
|
|
Wed Jul 05, 2017 7:25 am |
|
 |
SysOp
Site Admin
Joined: 26 Nov 2006 Posts: 7948
|
|
|
|
It appears unrelated to connection groups. It can be reproduced when
"SQL Assistance|Database Explorer...|Name Matching Method" = 'Name Contains Characters from Key String, Order by Best Match'
This bug will be fixed in 9.2, which is expected next week.
|
|
Wed Jul 05, 2017 10:53 am |
|
 |
|