In order to work with NAV containers, I highly recommend using NAVContainerHelper PowerShell module.
In the version 0.5.0.0 a new really powerfull function Invoke-ScriptInNavContainer
has been released, it allows you to invoke a PowerShell ScriptBlock in a NAV container.
Using NAVContainerHelper you do not have to care about loading NAV modules because they are already part of it and loaded, so to return to the title of this post, the script to synchronize database schema is:
$containerName = "scadev"
Invoke-ScriptInNavContainer -containerName $containerName -ScriptBlock {
Get-NAVTenant NAV | Sync-NavTenant -Mode Sync -Force
}
Invoke-ScriptInNavContainer has two mandatory parameters, the name of the container and the script block. In the ScriptBlock, I’m using two standard PowerShell functions included in the NAV module Microsoft.Dynamics.Nav.Management:
- Get-NAVTenant to retrieve the tenant
- Sync-NavTenant to synchronizes the database schema
Did my HOW TO help you? Leave a reply.