Database Initialization

Automated deployment for web applications and databases

Moderators: Mike Upton, justin.caldicott, Sean.newham, csmith, chirayu, DavidSimner, david.conlin

Database Initialization

Postby ktersius » Thu Mar 07, 2013 8:29 am

Hi

I need to run a script that can get the database initialized with certain data that cannot be linked as static data. What would be the best way to get this init script going and how should I use deployment manager to run it?

Also this script would only need to run once. It does not need to run if the database is already initialized. What would be the best strategy to accomplish this?

Regards
ktersius
 
Posts: 10
Joined: Thu Mar 07, 2013 8:16 am

Postby Brian Donahue » Mon Mar 11, 2013 3:02 pm

Hello,

My instinct would be to simulate linking static data by editing the database package, changing redgatedatabaseinfo.xml so that tables are linked, then you could use SQL Data Compare to compare the database to a blank database with just the table definition in it for each table and save a synchronization script in the data subfolder of the package, one file for each table, save it all back in, and recreate the package.

For example, linked static data appears in the DataFileSet element of RedGateDatabaseInfo.xml, like this:
Code: Select all
<DataFileSet>
<Count>1</Count>
<DataFile>dbo.Users_Data.sql</DataFile>
</DataFileSet>

Then if you have a file called dbo.Users_Data.sql in the Data subfolder of the package and a table schema called Users, the inserts in the Users_Data script should be run.

I haven't tried this so if you want to give it a test and let us know?
Brian Donahue
 
Posts: 6669
Joined: Mon Aug 23, 2004 10:48 am

Postby chirayu » Mon Mar 11, 2013 6:48 pm

Hi

You can also use Powershell scripts with Deployment Manager to initialise your database.

If there is a 'postDeploy.ps1' script in the database package that you are deploying, that script will get run post deployment. The powershell script can then poke the database to check if it's already initialised.

Links to documentation:
- Creating database packages in TeamCity or in MSBuild
- Working with database packages in Deployment Manager

Thanks!

Chirayu
Chirayu Shishodiya
Software Engineer - Deployment Manager
Red Gate
chirayu
 
Posts: 65
Joined: Mon Sep 17, 2012 5:48 pm


Return to Deployment Manager

Who is online

Users browsing this forum: No registered users and 0 guests