How can we help you today? How can we help you today?
Chris Lambrou
Hi Stephen, The three issues you've described are all essentially the same problem, that DLM Dashboard is not receiving and/or recognising the schema notifications from SQL CI. We did find an issue with an early release of this functionality that matches the symptoms you've described under some circumstances, so let's do a bit of digging. If would be useful to know the following: * What version of DLM Dashboard are you using? You can find this at the bottom of each page. * What version of SQL CI are you using? You can find this in the SQL CI output in the logs of your Jenkins builds * What version or versions of SQL Server are you targeting? It would also be useful if you could send me a copy of one of the NuGet packages that is generated by the SQL CI build step, so I can do some testing (provided that you're comfortable with that). You can email this to me at DLMAutomationSupport@red-gate.com Finally, it's also worth double-checking some of the basics. For example, your SQL CI build command specifies /dlmDashboardHost=localhost. I'm not familiar with the architecture of Jenkins, but most build systems use distributed worker agents, so are you certain that localhost actually refers to the DLM Dashboard instance that you think it does? / comments
Hi Stephen, The three issues you've described are all essentially the same problem, that DLM Dashboard is not receiving and/or recognising the schema notifications from SQL CI. We did find an issue...
0 votes
Hi Mattias, Yes, SQL Release is unfortunately currently slower than similar functionality available either through SQL CI or when calling SQLCompare.exe directly. Although SQL Release is essentially using the SQL Compare comparison engine under the covers, it's currently performing more database schema parsing, comparison and reporting steps than either SQL CI or when calling SQLCompare.exe directly. There are two different causes of this: 1. As a relatively new product, we've initially favoured correctness and straightforwardness of implementation over performance. There are a number of situations where we internally transform the database schema more times than we theoretically need to. We currently have some work planned for December and January that will address this issue (plans are always subject to change, of course!), so I hope your continued patience will pay off. 2. As part of the workflow put forward in the Octopus Step templates, there are a bunch of extra operations beyond those carried out by SQL CI. In particular: a) the Create Database Release step spends time creating an HTML change report, and then exporting the report along with the before and after database states as scripts folders. b) the subsequent Deploy From Database Release step then also performs two additional validation database comparisons when actually applying the schema change to the target database. This is based on the presumption that there will be a review step between creating the Database Release and deploying it, during which there may have been database changes that need to be guarded against. You could improve performance be removing some of the checks in the Deploy From Database Release step, but that alone won't restore the performance of SQL CI. If you're feeling confident, I'd suggest having a look at the PowerShell in the Octopus Step Templates, and then think about replacing the template steps with your own PowerShell script that only carries out the work that you're most interested in. We're also about to start some work (hopefully finishing around December) to extend SQL Release, exposing the functionality of SQL CI and SQLCompare.exe through additional PowerShell cmdlets. This will give you more control over the work that actually gets carried out by SQL Release. I realise this isn't the best of news in the short term, but I hope you'll bear with us over the next few months when we expect the functionality and performance to improve significantly. Also, you can get in touch with the SQL Release development team directly by emailing us at dlmautomationsupport@red-gate.com //Chris / comments
Hi Mattias, Yes, SQL Release is unfortunately currently slower than similar functionality available either through SQL CI or when calling SQLCompare.exe directly. Although SQL Release is essentiall...
0 votes
Ah, cool. For the record, you can indeed specify the path of a scripts folder as the -Source parameter to the New-DatabaseRelease cmdlet. / comments
Ah, cool. For the record, you can indeed specify the path of a scripts folder as the -Source parameter to the New-DatabaseRelease cmdlet.
0 votes
Hi Sam, Example 1 of the New-DatabaseRelease cmdlet shows exactly this use case (to view it, type Get-Help New-DatabaseRelease -Examples from a PowerShell prompt). The example generates a new Database Release containing SQL to apply the schema of a 'Test' database to a 'Staging' database. # Define the connection details to the 'Test' and 'Staging' databases. $staging = New-DatabaseConnection -ServerInstance 'staging01sql2012' -Database 'Staging' -Username 'sa' -Password 'P@ssw0rd' $test = New-DatabaseConnection -ServerInstance 'test01sql2012' -Database 'Test' -Username 'sa' -Password 'P@ssw0rd' # Create a Database Release that can be used to update the 'Staging' database schema to match that of the 'Test' database. $release = New-DatabaseRelease -Source $test -Target $staging # And finally apply the release to the 'Staging' database. $release | Use-DatabaseRelease -DeployTo $staging However, it's not really an intended use case, and there are some drawbacks. For example, a version controlled scripts folder (as used by SQL Source Control) includes additional information about static data that is simply unavailable if using SQL Release to directly sync between two databases. I'd strongly consider using SQL CI, or even working directly with the SQL Source Control scripts folder, rather than a database to act as the source of the new schema to be deployed. We're more than happy to help you out if you're struggling to understand how best to get your source controlled database deployed to your production database. You can contact the SQL Release team about this directly at DLMAutomationSupport@red-gate.com / comments
Hi Sam,Example 1 of the New-DatabaseRelease cmdlet shows exactly this use case (to view it, type Get-Help New-DatabaseRelease -Examples from a PowerShell prompt). The example generates a new Databa...
0 votes