Invoke-DlmDatabaseSchemaValidation in DLM Automation removes
neiltrodden
Posts: 5 New member
Hi,
We’re currently evaluating the Toolbelt suite and am currently in discussion with RedGate regarding a possible purchase for our entire company. We’re having a problem with the DLM automation part and wondered if you could help.
As part of our TeamCity testing process, we run the ‘Invoke-DlmDatabaseSchemaValidation’ Powershell script to test against a database we have in our development environment called _TeamCityBuild.
The problem is, this ‘cleans’ the database first and this appears to be removing all users in that database. This causes an issue because we use Amazon’s RDS service which does not allow you to have server level administrator access – RDS creates users within the database you are creating and grants access to them. When Invoke-DlmDatabaseSchemaValidation runs, it removes these users and locks us out of the database…
We’ve examined the verbose output from Invoke-DlmDatabaseSchemaValidation and see that the clean database step calls SQLCompare.exe and does not use any filter so we cannot tell it to leave our ‘sqldba’ user alone.
Is there any way to get around this?
Thanks
Neil
We’re currently evaluating the Toolbelt suite and am currently in discussion with RedGate regarding a possible purchase for our entire company. We’re having a problem with the DLM automation part and wondered if you could help.
As part of our TeamCity testing process, we run the ‘Invoke-DlmDatabaseSchemaValidation’ Powershell script to test against a database we have in our development environment called _TeamCityBuild.
The problem is, this ‘cleans’ the database first and this appears to be removing all users in that database. This causes an issue because we use Amazon’s RDS service which does not allow you to have server level administrator access – RDS creates users within the database you are creating and grants access to them. When Invoke-DlmDatabaseSchemaValidation runs, it removes these users and locks us out of the database…
We’ve examined the verbose output from Invoke-DlmDatabaseSchemaValidation and see that the clean database step calls SQLCompare.exe and does not use any filter so we cannot tell it to leave our ‘sqldba’ user alone.
Is there any way to get around this?
Thanks
Neil
Comments
Following up on the support ticket, you should be able to do this by setting up a a SQL Compare filter that excludes users and then explicitly calling that filter using `-FilterPath` .
Unlike with other cmdlets just having a filter on your SQL Source Control scripts folder will not work with Invoke_DlmDatabaseSchemaValidation.
Thank you,
Product Support Engineer
Redgate Software Ltd
Please see our Help Center for detailed guides on how to use our tools
What I found was that my database scripts folder already contains a filter.scpf file but I had to explicitly tell the validation script to use it. Note - the same filter file is used for the clear-down *and* the testing...!