How can we help you today? How can we help you today?
freecell1
I got this working eventually. Originally I was doing the compare from script folder -> database using the checkout folder on the build server. I used the new options in 10.1 to change this to svn server -> database This took a while as I had to install SQL Source Control on the build server, which meant I had to installed SQL Management Studio on the build server, etc. Currently What I have going includes a custom c# console app that wraps calls to SQL Compare and SQL Data Compare. Basically: 1) MSBuild file on build server has a list of databases to compare (17 for us). 2) MSBuild file calls our custom CompareDatabases console app once per database. 3) That app calls SQL Compare and SQL Data Compare. For SQL Compare it dynamically generates the XML config file mentioned above. For Data Compare it takes a stored list of tables to compare (static data) and dynamically builds an XML config file that specifies a destination server and either /sync or a script file name. The script file name comes from a build label set in the build server (happens to be TeamCtiy). 4) The build has a step to check in the generated SQL scripts, if applicable, for a DBA to review before we run them in staging/prod. Thanks to everyone for the help. I'm happy to share details of how I did all this. / comments
I got this working eventually. Originally I was doing the compare from script folder -> database using the checkout folder on the build server. I used the new options in 10.1 to change this to sv...
0 votes
Chris - Thanks for the information. I've made comments inline: csmith wrote: However, we do plan to introduce a feature where developers are 'auto-linked' to a database that they have connected to in SSMS and has already been added to a version control respository via SQL Source Control. This would help us greatly. With our current process, developers have quite a bit of manual clicking to do to get hooked up to the ~17 databases we have in source control. Can I ask how each of your developers creates their local development database? Do they use a recent backup of a production database? We have a tool (which we wrote in .NET) that copies backups from production, restores them locally, and then runs clean scripts on each database to remove user data like email addresses so we don't accidentally interact with real people when testing. The scripts also replace the production SQL logins and users with development logins that have lowered permissions in other environments. You are correct that filters are shared between users as they are stored in the repository. This is also true of static data table links - once you set them up all other developers that connect to that repository should also have those connected. Great. I tested this out just now. So basically each person has to input the svn url for each database and do a get latest, but they don't have to mess with the filters and static data list. That's manageable. We have not considered a "Get Latest on all connected databases" feature - either automated or via a button click. We have thought about adding a red marker to databases in the Object Explorer that contain unretrieved changes. This is similar to how the blue markers currently indicate local changes that the user needs to commit. Would that help? Yes. I commented on the suggestion. I also created a suggestion for getting latest on multiple databases. Thanks, John / comments
Chris - Thanks for the information. I've made comments inline: csmith wrote: However, we do plan to introduce a feature where developers are 'auto-linked' to a database that they have connected to...
0 votes