Database versioning and techniques to update databases on customers

  • Hi!

    1. What are the best practices or which techniques do you use to update a database on a specific customer?

    Providing that:

    A. you need to keep the data already existing in existing tables from previous versions;

    B. some tables contain static data that could need to be updated;

    C. you have a database that could be in a specific version (for example, with version saved in a table) and that you have to deploy different versions to different costumers;

    D. you don't have the costumer database to 'script the differences'

    Do you script the differences to a specific version and execute that script on client using SSMS?

    2. Which techniques do you use to increase the database version? major, minor release number, ..

    3. After update, how to check if all updates went well and database is with the correct schema and static data?

    Regards

  • It's a Big, BIG topic you are asking about. Some vendors have taken a legitimate shot at solving the issue and providing a methodology and supporting tools to do this. Most times what I see are shops coming up with their own brew of scripts and processes to do what you're asking mostly to navigate company politics and organizational constraints (e.g. Change Management policies).

    You're asking the right questions. Here are some leads:

    1. Microsoft SQL Server Data Tools (SSDT) for Visual Studio

    2. Embarcadero DB Change Manager

    3. redgate DLM[/url]

    Personally I like the SSDT way of doing things because it puts the source control repository first. I find that the other tools in the space are more focused on what's going on in a particular database and then there are tools to sync from a database outward to other environments. There are pluses and minuses to all of the methods. It is a tough problem to solve primarily because the data and code (in this case schema and modules) are intertwined. The pure app developers have it easy because they get to delete their old binaries from disk and redeploy new ones in their place whereas the database folks have to constantly be thinking about whether their scripts will run properly into all versions of the database in the wild and collateral data damage, the worst offense a data pro can commit.

    There are no special teachers of virtue, because virtue is taught by the whole community.
    --Plato

Viewing 2 posts - 1 through 1 (of 1 total)

You must be logged in to reply to this topic. Login to reply