How can we help you today? How can we help you today?
Ivo_Miller
Hi, The SSMS plugin should at no point perform worse than the Visual Studio plugin. If you do have a reproducible scenario of this we would be happy to look into it. We are aware that we are lacking good progress indications in SSMS, and that may make it appear that the application is hanging even if it isn't. In general, we don't currently know of any scenario where the application actually hangs. It generally completes operations successfully, though some do occasionally take some time. Adding progress information is high on our priority list to improve this experience. In terms of certain operations occasionally taking a lot longer to run. This generally happens when we need to rebuild the shadow and redeploy the project from scratch. I have mentioned in the other post you raised the conditions around the shadow being rebuilt (https://forum.red-gate.com/discussion/87078/ssms-plugin-verify-success-invoke-databasebuild-error-fail). It is possible to avoid shadow database rebuilds with certain patterns of development. In addition, if running the shadow database on Azure the logic for dropping and recreating the shadow can be time-consuming. If your project has a complex baseline script, performance of the shadow rebuild may be improved by using SQLClone instead of a baseline, currently in preview mode. To summarise, we are conscious of the issues you have raised, and there is active development going on to address them. / comments
Hi,The SSMS plugin should at no point perform worse than the Visual Studio plugin. If you do have a reproducible scenario of this we would be happy to look into it.We are aware that we are lacking ...
0 votes
Verify is doing exactly the same checks as Invoke-DatabaseBuild. It is parsing the syntax of all the migrations and programmable objects and then running a deploy against the shadow database. The only difference is that as a performance optimisation we don't drop the shadow database and perform the deployment from scratch when running Verify. We will drop the shadow database and run the full deployment if the existing state of the shadow database is considered to no longer match the project. This is typically if a migration is manually edited or deleted or a programmable object is manually deleted (i.e. from the Manage Migrations screen, rather than the Generate Migrations screen). This logic works in the vast majority of cases and should always work if you only import objects to the project via the "Generate Migrations" screen. There are unfortunately a few scenarios where the shadow database invalidation logic doesn't work and we fail to delete the shadow database when we ought to. This is solved by dropping the shadow database before verify (equivalent of "rebuild" in Visual Studio). We might make this option more obvious in the SSMS UI in the future. For reference, these are the known scenarios which might cause spurious behaviour as a result of the shadow not being rebuilt: Changing the value of a SQLCMD variable does not currently result in the shadow being rebuilt Changing the values of SQLCMD variables does not cause programmable object scripts that consume those variables to redeploy Adding/removing/changing Pre & Post-Deployment scripts does not result in the shadow being rebuilt Adding a migration, or editing an existing deploy-on-change script, does does not result in the shadow being rebuilt <-- this is an intentional optimisation, but it can have some side effects. For example, 1. add a proc as a PO to a project, 2. apply it, 3. add a migration that calls the proc, 4. apply & verify (succeeds), 5. clean solution to drop shadow db, 6. verify (fails to call the proc in the migration) / comments
Verify is doing exactly the same checks as Invoke-DatabaseBuild. It is parsing the syntax of all the migrations and programmable objects and then running a deploy against the shadow database.The on...
0 votes