Need good version control for SQL and Crystal Reports
We have several large data warehouses in which we have warehouse data for metric reporting. One is SQL 2000 and the other is 2005. We are using Crystal Reports 11 as our reporting tool.
Over the past few weeks we have had a couple of very visible crash reports due to changes in Db or changes in reports.
To minimize these errors, I am investigating how to script our Crystal databases and reports as version control. Can anyone point me in the right direction on how I can get these assets under some kind of version control? We have subversive activities in our company, will this work?
a source to share
You can use standard versioning controls for Crystal Report files. However, dealing with databases is a little more complicated.
Visual Studio Team System 2008 Database Edition (Data Dude)
You can use this version of Visual Studio to manage your database, defining database tables, views, stored procedures, functions, and so on, stored as build scripts (as if you were starting with an empty DB). The visual studio functions will then create a database differential (schema comparison or data comparison) and generate scripts that will need to move from one version of the database to another (that is, between DEV and TEST instances).
Database definitions are what gets into version control (so you can see what the database looks like at any time), and Visual Studio fills in the rest, creating the right scripts to move from one version to the next.
The hard way
Keep track of your databases, scripts that changed the database and migration template. If you want to go to the database version, you must start with an empty dB and then run each script sequentially until you reach the database version you want.
This is basically what Ruby on Rails does when using the db_migration functions, however if you have encoded the migration files correctly, you can go back, but I am assuming you are working with .NET on Windows.
a source to share
We are currently looking at a product called RptDiff ReportMiner to help with Crystal Report version control. If we make significant changes to a report in our standard product and our client has customized an older version, we would like to say which changes need to be applied more easily than visually inspecting the report. I am currently overflowing the stack looking for another option before buying just for homework. So far we have not seen a single diff report and what crystal offers for free (export of text definitions).
a source to share
There are two ways to handle this:
-
You can use any version control (Visual Source Safe, SVN, etc.). Each time you change the report file, export it to a report format (File menu-> Print-> Export, Format: Report Definition) and add both the report and the report definition files to the source control file. The report definition file is a text file and can be compared to any other text file, so you can see what has changed. The report file is a binary file and cannot be compared to regular version control software, but you can use it to restore a previous version if needed. The advantage of this method is that it is free. The disadvantages are that you have to do extra steps and the comparison is limited towhich is exported to a report definition file. For example, formats, positions, sizes, etc. Will not be exported.
-
There is a tool: R-Tag Crystal Version Control. This version control is for Crystal reports only and will work like normal version control but will also compare binary report files. In addition, you will be able to search for the structure of the reports. This tool will compare much more than the report definition from Method 1 and will save you time because there are no extra steps or exports. The disadvantage compared to the first method is that it is paid software. You can find more details here: http://www.r-tag.com/Pages/VersionControl.aspx
a source to share