While working with an AccuRev customer the other day, we came up with a very interesting use for AccuRev cross-link capability that I thought would be interesting to share.
This customer was looking for a way to centrally store their database DDL (Data Definition Language) files that are used to update the various DB staging environments that they use for development, testing, and production. These DDL files are centrally developed by the DBA team, a common practice in most organizations, and can only be changed by that team.
Although these files are managed separately from the applications that use the databases, they need to be tracked alongside the application code bases to provide a complete configuration of the code and the database at all times.
At first, we talked about using change palettes to propagate the DB DDL files to the application streams and use triggers to secure the DB DDL directories so they couldn’t be edited. Sounded like a lot of hard coding and script work.
CROSS-LINKS TO THE RESCUE!
This was a no-brainer for cross-links. We setup a stream with ACL’s, just for the DBA group to modify and version the DB DDL files. From this stream, they would create independent releases of the database.
Of course, the different applications are using different versions of the database at any one time, as well as customer specific versions of the database.
Using cross-links from the DB DDL streams and snapshots, the DBA team can independently and securely make changes to the database and cross link any version to any application stream. The application stream will always retain the history of the database versions that have been linked in, while preventing developers from changing the DB DDL files.
What a huge time saver. We didn’t have to custom script any security and will not have to manually promote these changes as they occur. The Cross-link will automatically update the streams whenever the database changes.
How are you using Crosslinks?

