How can we help you today? How can we help you today?
datacentricity
I've been experiencing the same issue, our setup is as follows: SQL Source Control 5.1.1.2694 SQL Compare 11.6.3.1926 TFS 2015 source control We have just moved over to SOC v5 and on the first attempt to deploy changes (including three new v5-style migration scripts DDL - DML - DDL), SQL Compare did not find any migration scripts and, more to the point, the resulting deployment scripts did NOT include them either. These were the things I checked/tried: 1) Check that the value for "SQLSourceControl Database Revision" in the target database was less than the earliest change set number of any expected migration script 2) Check that the value for "SQLSourceControl Scripts Location" was pointing to the correct URL for our TFS repo 3) Check that there was no extended property called "SQLSourceControl Migration Scripts Location" 4) Reconnected SQL Compare to the correct source folder location in TFS This was the first time that we had tried deploying changes with the new v5 migrations so [RedGateLocal].[DeploymentMetadata] did not yet exist in the target database. All to no avail - still no migration scripts. Possible Fix: Finally, I found the behaviour option "Ignore migration scripts for databases", This was unchecked. On a "running out of ideas, pulling my hair out" hunch I tried checking this option, saving the project closing and re-opening SQL Compare then unchecking that option again. It may have been simple coincidence rather than my hunch but the next time I tried building a deployment script, the expected migration scripts were included in the final script (although still not visible in the pre-deploy steps). I think that the change to SOC v5 migrations is a really good thing but I am really disappointed to discover that I have to dig around in a forum to discover that SQL Compare will (eventually) include those new-style migration scripts even though it tells me there are none. I accept that SQL Compare may not yet be able to list the individual migrations or the objects they affect (the way it did for v1) but it should still indicate to the user that such scripts will still be included in the final deployment script. As it is right now, when building a deployment script, in the Deploy dialog, in the list of steps we see ""2. Review Migration Scripts > No migration scripts". This is really misleading and I have come to expect better from Red-Gate. When will support for SOC v5 migrations be fully implemented for SQL Compare and in the meantime can we have a frequent updates release that at least highlights the fact that migrations are not listed but will be included in the final script? Many thanks for an otherwise great product range. / comments
I've been experiencing the same issue, our setup is as follows: SQL Source Control 5.1.1.2694 SQL Compare 11.6.3.1926 TFS 2015 source control We have just moved over to SOC v5 and on the first atte...
0 votes
FWIW, I have been encountering a lot of this error recently. I have a suspecian (but haven't proved it) that this may be caused when I use Visual Studio's TFS Explorer to move large numbers of sql scripts between folders (actually tSQLt unit test which we store in a separate folder structure with the main source folder). Anyway, after reading this post, I identified the working base location then in TFS Explorer used the Workspace drop down to switch the to working base location. When I did a get latest, I noted a shed load of changes so obviously the weoking base hadn't been updated properly by SSC. Then when I tried to commit again, I got a write lock failure but after closing TFS Explorer and restarting SSMS it worked OK. So for the guys at RedGate this seems to be a bug with how SSC interacts with TFS (at least in my case). Specifically, when I use SSC to commit new changes including tSQLt tests, the test procedures end up in the $/Source/Stored Procedures/ folder which with over 1000 tests just gets in the way of the production sprocs. So I then use TFS explorer to move those to a different folder $/Source/Tests/Unit Tests/ and commit my changes. I think the problem occurs because although the folder path for some sprocs has changed, there are no material changes to the DB so get latest produces no changes (as you would expect). However the next time I try and commit I'm seeing the "the list of changes to commit was out of date" error / comments
FWIW, I have been encountering a lot of this error recently. I have a suspecian (but haven't proved it) that this may be caused when I use Visual Studio's TFS Explorer to move large numbers of sql...
0 votes
Okay, let’s try leaving SSC out of the mix for a moment. In the “shared†model, all database developers write their code against the same database. Hopefully they connect to this database with their own dedicated login (whether Windows or SQL Server) rather than some global dev user account. There is a single dev database and everyone develops in that. In the "dedicated" model, each developer makes their changes against their own dedicated database. This could be multiple databases on the same SQL Server instance: PubsTom, PubsDick, PubsHarry etc but it is more likely to be set up so that each developer has their own dedicated SQL Server instance. This might be a VM or named instance on a shared physical server or SQL Server Developer edition (or even SQL Express) installed on each developer’s desktop. User is what you think it is – a Windows or SQL Server login. “Sandbox†is just a term used to describe a dedicated development environment where a developer can “play†without impacting on anyone else. It is a physical thing and you can only have a sandbox if operating the “dedicated†model as a shared database cannot, by definition, be a sandbox - unless everyone else has gone home for the night maybe [image] So the question in SQL Source Control when you bring a database under source control relates to whether all your database developers work in one shared database or whether they each develop in their own dedicated database. As far as I know, it is not possible to combine both approaches in SSC. I am not sure how SSC would work if all your developers use a single global user account like “sa†to develop. / comments
Okay, let’s try leaving SSC out of the mix for a moment. In the “shared†model, all database developers write their code against the same database. Hopefully they connect to this database wit...
0 votes
If you operate in "Dedicated" mode, each developer will have their own sandbox development database in which to code, test and experiment. "Shared" mode means that all developers develop and test against a single shared development database. If (as a developer) you are working against a "shared" database, (from memory) SSC will show you all changes (including those made by other team members) but by default will only commit changes made you. Obviously with a "dedicated" development database you would only see your changes. With a "shared" database all developers can see each other's changes immediately - whether they are ready for general consumption or not. This includes experimental schema and code changes, and any bugs. This approach also introduces problems around what happens if two developers are working on the same code module or when one developer starts coding against something written by another developer that is only partially complete or even gets rolled back altogether. The only advantage with the "shared" approach is that it reduces the number of development instances that need to be maintained by the DBAs (ignoring the fact that most SQL devs could quite happily do their own dev instance support/maintenance) The advantages with the "dedicated" model is that the rest of your team will only ever see the changes you have committed to source control after all tests have been completed etc. You can experiment to your heart's content in your sandbox database safe in the knowledge that you won't break everyone’s shared development database/application. The "dedicated" model is also the only way for developers to write and run their own unit tests without clashing with the activities of their colleagues. Generally speaking, the accepted wisdom is that “dedicated†is the only way to go. Some companies worry about cost (SQL Server developer edition is dirt cheap) or, more often, control. If all databases are in the cast iron grip of the DBA team then senior management can sleep soundly at night safe in the (lack of) knowledge that their database developers are working with one hand tied behind their backs and one eye shut. If this situation applies to you, Troy Hunt has quite a nice piece on The evils of shared databases. Benjamin Day also has this to say on the subject. / comments
If you operate in "Dedicated" mode, each developer will have their own sandbox development database in which to code, test and experiment. "Shared" mode means that all developers develop and test ...
0 votes