Solutions Products Download Purchase Support News Members Company
SITE FEED
Support Forum
The fastest and most effective to get answers to your questions quickly.
FAQs
Quick answers to common questions.
Troubleshooting
Known issues and basic troubleshooting techniques for problems or unexpected behaviors.
Knowledgebase
Technical tips, How-to articles, and other tutorials about ApexSQL Tools.
Online Documentation
All of our help files for download or convenient viewing online.
Videos
Watch product demos, training videos, or tutorials of our products' main features. 

ApexSQL Knowledgebase

Tips and How-to Articles for Apex SQL Tools


Using project files and selection profiles in CLI

DESCRIPTION
This article describes what is stored within project files and selection profiles and main techniques of their usage from command line based on ApexSQL Diff application.

SOLUTION
What are .axds files?
.axds files are XML project files for the ApexSQL Diff database structure comparison and synchronization tool.
These files are keeping all project information that can be categorized like:

• Source and destination database strings
• All comparison and syncing instructions for the project
• Object selection types
• Object selection filters
• Objects selected (per object type)
• Owner’s mappings and other…

What do I use .axds files for?
The main purpose of usage the project files is storing there all your preferred settings: comparison, synchronization, owner/schema mapping and others. Having such a file it’s enough to specify in CLI to get the same result as you would get working with the same project in GUI:

apexsqldiff.com /pf:your_project.axds

Another technique when using the project file in CLI is overriding some of the stored settings by explicitly specified switches. For example, you want to compare 2 different database pairs using the same comparison settings, all you need to do is to override connection settings stored in the project:

apexsqldiff.com /pf:your_project.axds /s1:server1 /s2:server2 /d1:database1 /d2:database2
apexsqldiff.com /pf:your_project.axds /sn1:snapshot1.axsnp /s2:server1 /d2:database3


This way you will compare different data sources using the same comparison settings.
In addition to this you can change object type selection or whatever comparison option you want:

apexsqldiff.com /pf:your_project.axds /sn1:snapshot1.axsnp /s2:server1 /d2:database3 /so:UseTransaction /ita:IgnoreCollations

In the above example /so:UseTransaction switch will include transactions into the final synchronization script and /ita:IgnoreCollations switch will suppress differences in table collations.

What are .axsp files?
.axsp files are XML profiles of object selections, subparts of .axds files, and they can keep the info what objects types and object filters have been selected for comparison/synchronization and what objects in particular have been selected for comparison/synchronization.

What do I use .axsp file for?
You can save your current objects selection using the exporting feature from the project wizard. .axsp files are used to save particular object selections.
Typically you may have single project with specific comparison/synchronizing instructions, and many different .axsp files ready for import in order to specify objects for comparison/synchronization (what will be compared/synchronized).

How to use .axsp from CLI?
Take this syntax for example:

apexsqldiff.com /pf:your_project.axds /i:your_selection.axsp

This way the object selection made in the project file will be overridden by the selection profile specified in /i switch because our main standard is that all explicitly specified switches must override information stored within the project file used in /pf switch.

Over the time my database grows with new objects. Will the new objects be considered for comparison/synchronization if I am using the same project file?
It depends whether you use filters or not, and what switches you are using from CLI if you are working in console mode. For example, let us consider tables (object type table). If you are not using filters (Use Filter feature) and you have checked tables for comparison



then all the tables that are new will be considered for comparison.
And if you are using object filters (Use Filter box is checked) then you must explicitly check tables that are to be compared like this:



New tables appeared after you have saved the project file will not be added to the comparison list unless you check them explicitly (saving the project file after that) and this ensures that only desired objects (tables in the example) will be compared/synchronized.

But even if you selected only certain tables for comparison using Use Filter feature, in CLI you may easily override this setting using /o switch that points out what object types are to be compared/synchronized.

Example of using /o switch:

apexsqldiff.com /pf:your_project.axds /o:8

/o switch will override all project selections regarding tables (in ApexSQL Diff the constant “8” corresponds to tables), and the newly added tables will be considered for comparison/synchronization.

AUTHOR
Dejan Batanjac

LAST REVIEW DATE
21 October 2008

Labels:



© 2010 Apex SQL Tools All Rights Reserved | 1.919.968.8444 | Contact Us | Terms of Use | Privacy Policy