Invoke-DlmDatabaseSchemaValidation - External References
tomslickers
Posts: 40 Bronze 2
We are trying to use a Jenkins/DLM Automation solution to implement CI for our databases. Many of our database objects reference objects in other databases (either on the same server or on a linked server) and nvoke-DlmDatabaseSchemaValidation is failing in this situation (which I suppose makes some sense).
In response to a previous question, Rob C posted the following:
Ah, this explains things and I'll try to explain what is going on. We are trying to build a series of scripts. Script files don't really have a concept of database name as they are just flat files representing individual objects. When you use three part naming, the parser assumes you are referring to an external dependency that doesn't need to be built and this can result in an incorrect deployment order.
To fix this, you'll need to adjust these references to remove the database name.
This would seem to be a deal-breaker for any databases that use external references. Is there a workaround? Any suggestions? Should we skip the folder-based schema validation?
In response to a previous question, Rob C posted the following:
Ah, this explains things and I'll try to explain what is going on. We are trying to build a series of scripts. Script files don't really have a concept of database name as they are just flat files representing individual objects. When you use three part naming, the parser assumes you are referring to an external dependency that doesn't need to be built and this can result in an incorrect deployment order.
To fix this, you'll need to adjust these references to remove the database name.
This would seem to be a deal-breaker for any databases that use external references. Is there a workaround? Any suggestions? Should we skip the folder-based schema validation?
Best Answer
-
tomslickers Posts: 40 Bronze 2I believe I sorted this out. The solution (obvious now) is to do the schema validation in a database instance that includes the external dependencies.