“What’s the best way to migrate a multi-directory Btrieve database to a SQL backend?” It’s a question that comes up often, considering that in SQL, different tables with the same names will collide if stored in the same database.
The scenario pops up because applications using a multi-directory structure store general information in a top directory, and region-specific information in lower directories. Here’s an example of this structure:
To get around this potential for collisions, Mertech’s BTR2SQL GUI offers several ways to resolve this problem:
If you choose this option, you’ll be migrating each of your company-specific directories to a separate server or database, so similarly-named tables don’t conflict with each other.
Pros:
Cons:
If you choose this option, you’ll be migrating each of your company-specific directories to separate schemas (users in Oracle), in much the same way you’d be migrating to multiple databases or servers if you chose the option above. However, migrating to separate schemas on Oracle allows you to more granularly control user access.
Pros:
Cons:
If you choose this option, you’ll be adding a unique prefix or postfix to each table you migrate, to note which are used by which directory. Then, you’ll be creating and updating mds.ini files to match this structure, as well as migrating certain .INT files, so your application functions as expected.
Pros:
Cons:
After you weigh out the pros and cons of your migration options the next step is to get started! To get the step-by-step procedures you need in order to perform a multi-company migration, refer to the Multi-company migration of a Btrieve application using the BTR2SQL GUI white paper.
Originally published November 13, 2014, and updated August 15, 2018