Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

The database our developers are working on is too large (have a lot of database objects). We have to control db objects changes (change management). Our company cannot have a person who would be responsible for db changes only. So we need a source safe for database objects, something like version control for standard code, but more related to database, that can synchronize database and scripts. What is the best one. Reliable, Cheap, Functional - choose the two ones :)

share|improve this question
    
See: dba.stackexchange.com/questions/2/… –  Nick Chammas Jan 26 '12 at 1:17
    
@Nick Chammas I have seen it, that question has a little bit other meaning on my opinion –  garik Jan 26 '12 at 11:50

7 Answers 7

up vote 11 down vote accepted
share|improve this answer
5  
Developer discipline will be the hardest... –  gbn Jan 25 '12 at 10:13
1  
And most difficult to setup/deploy! 8-) –  Oleg Dok Jan 25 '12 at 11:36
    
@gbn - Once it becomes part of their workflow with the right tools, versioning their database work will become second nature. –  Nick Chammas Feb 7 '12 at 17:16
    
The key to devloper discipline is not allowing them to move objects to QA or Prod (which frankly they shouldn't be doing anyway)and the people who do have the rights will only move from your source control. –  HLGEM Feb 25 '13 at 15:59
    
@HLGEM, I think what you're painting is ideal but the op already mentioned that they do not have a budget for a dedicated dba. I think if you have a good group of developers and are working on non critical/business imapacting software.. you can get away with good/tight version control. Especially in a smaller development shops. –  sam yi Nov 12 '13 at 16:52
  • Usual Database/Server projects in Visual Studio
  • RedGate SQL Source Control

both are compatible with TFS and SVN/Hg

share|improve this answer

Our team uses Visual Studio 2010 Database Projects. Most of our projects rely on MS Team Foundation Server for source control, which integrates seamlessly, but I found out recently it will work (with only a little pain) on other source systems. We have one such project on Perforce. The build and deploy features of VS2010 work very well and can be automated using PowerShell (very useful if for instance you wanted to restore a baseline to test deployments). Different configurations can be created if for example you want a full or differential deployment target.

You can also include data population or other scripts with your deployment, and those go under version control as well. Database objects may be managed by checking in scripts you create or you can use the more intuitive schema view. All of the dependancies are tracked. You can manage every aspect of your SQL Server DB under source control, including all of the properties, files and file groups, and permissions. Great for keeping standards and practices in place. It has a visual database diff tool, I prefer Red-Gate's implemtation of this feature, but you don't use the graphical compare to create deployments in VS2010 and it's become moot as I've grown comfortable with the MS builds and how much they help me keep my DB projects clean.

Unfortunately, I cannot compare at this level of depth with other systems for keeping databases under source control. I've worked quite a bit with "developer discipline", but I no longer consider that a system and never want to go back to that. Also had a brief stint using an SSMS plug-in to SVN but that was quite awhile ago. For that we had to use Red-Gate to generate deployment scripts.

share|improve this answer
    
+1 thank you for useful information –  garik Feb 1 '12 at 6:54

ApexSQL Version, supports Visual Source Safe, Subversion, Team Foundation Server, SourceGear Vault and MSSCCI compliant versioning systems

share|improve this answer

The source control tool is designed to be a replacement of VSS and can integrate with SQL Server Management Studio.

share|improve this answer

DB Ghost is a good tool for versionizing your databases. Sync, compare, delta, copy, build, script...and it can be run via command line for automated jobs.

http://www.dbghost.com/

share|improve this answer

SQL Server 2008 R2 (and earlier) Source Control FYI: Database objects are not directly protected by the source control provider… Meaning you still have to use a disciplined convention… Because you can still make changes to database objects using other tools… http://technet.microsoft.com/en-us/library/ms173550%28v=sql.105%29.aspx

Unlike MS database projects RedGate SQL Source Control connects your databases to your version control system… http://www.red-gate.com/products/sql-development/sql-source-control/

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.