Software Vendor vs. In-House Deployment¶
BTR2SQL serves two broad categories of customers, each with different deployment considerations:
Software Vendor — You ship a software product to many end-user sites. Migration and deployment must be repeatable, automated, and hands-off.
In-House — You maintain an internal application used by your own organization. Migration is typically a one-time event, and you have direct access to the machines.
Understanding which scenario applies to you will guide your choices for migration strategy, file layout, and configuration.
Software Vendor Deployment¶
As a software vendor, your goal is a deployment package that can be installed on customer machines with minimal manual intervention. Key considerations:
- Migration strategy
Start by developing and testing your migration process in-house using the GUI Migration Utility or MdsMigrateTable command-line tool. The goal is to build a reproducible, scripted process using the command-line tools that can be run reliably at each existing customer site to migrate their data from Btrieve to SQL. For new customers who have no existing Btrieve data, use XML deployment with MdsMigrateTable to create tables and INT files as part of your installer.
- Driver files
Bundle the Mertech replacement DLL, the license file (
.cfg), and the mds_global.ini in your application’s installation directory. Use the 32-bit DLLs (w3btrv7.dll/wbtrv32.dll) or 64-bit DLLs (w64btrv.dll/wbtrv64.dll) to match your application’s bitness. See Runtime File Setup for the complete file list.- Connection configuration
Use the mds.ini file to define server, database, and credential settings. For secure credential storage, use MdsEncryptPassword or Windows Credential Manager integration.
- Tracing in the field
Ship with production tracing enabled so that errors are captured on customer machines. This makes remote troubleshooting significantly easier.
In-House Deployment¶
As an in-house customer, you typically migrate once and manage the deployment directly. Key considerations:
- Migration strategy
Use the GUI Migration Utility for the initial migration. This is the most straightforward approach when you have direct access to the Btrieve data files, DDFs, and the SQL backend. For tables without DDFs, MdsMigrateFile provides an alternative.
- Driver files
Deploy the same set of runtime files as a software vendor (see Runtime File Setup), but you may choose to place shared files on a network path or distribute them through your organization’s software deployment tools.
- Connection configuration
In an in-house environment, you may want to centralize connection settings. The mds.ini file supports folder-level inheritance, so a single mds.ini placed at a common root can serve multiple data directories.
- Ongoing maintenance
Configure production tracing so that errors and warnings are always captured. Tracing settings can also be adjusted at runtime using MdsSetSetting or environment variables without restarting the application.
Important
The full BTR2SQL installation (Migration Utility, command-line tools, etc.) should not be deployed to end-user client machines. Only the runtime files listed in Runtime File Setup are needed. Installing the full toolkit on client machines exposes utilities such as MdsEncryptPassword that could be used to decrypt stored credentials, which is a security risk.
Choosing a Migration Approach¶
Scenario |
Recommended Tool |
Notes |
|---|---|---|
First-time migration with DDFs |
GUI is easiest for one-off migrations; command line is better for scripting. |
|
Automated deployment to customer sites |
XML files let you define the entire migration declaratively. See XML Deployment. |
|
Migration without DDFs |
Uses B_STAT to determine file structure. Intended as a last-resort approach. |
|
Schema updates after initial migration |
MdsMigrateTable with |
Use |
Validation after migration |
MdsMigrateTable with |
Confirms that data was correctly transferred. |