Migration from updater v3 to v4

Migration from updater v3 to v4 is a significant change to the R4 system. In this article we cover all changes and potential challenges you might face. Please contact the Tech team would you experience any issues not listed here.

Updater v4 might be also called namespace deployer. To switch to it, you will need to carry out all pending updates with updater v3 first, then launch the new /af-updater to continue the update process.


  • Web updates: it will update PimsWeb hostname instead of Appframe. This is because most of PimsR4 web runs on the PimsWeb hostname. If your host is different, please setup PimsWeb host from Appframe.
  • Namespace table has been changed to stbl_Deploy_Namespaces and a database trigger was configured to check against this table to enforce naming convention. We intentionally have omitted all namespaces from the database. This means that, for your solution, you should manually add namespaces, or write a script to move all namespaces from Database namespace to Deploy. Namespaces can be added in web article /af-namespaces
  • Database objects will no longer create versions when you alter them, if no changes were made. You can add a comment on top of the script if you need a version to be created.
  • The new updater v4 is accessible via /af_updater

Known issues:

  • A user running updates has typically permissions to all namespaces, but ensure you have [af_updater] role and namespace permissions to insert and update for stbl_Deploy% and stbl_Bundle% 
  • Some development articles are using typescript files, in order to compile them you need to have JsEngine HTTP module.
INSERT INTO dbo.stbl_WebsiteCMS_HTTPModules (AssemblyName, TypeName)
    SELECT 'Appframe.Web.JsEngine, Version=, Culture=neutral, PublicKeyToken=null', 'Appframe.Web.JsEngine.HttpModule'	
                        FROM dbo.stbl_WebsiteCMS_HTTPModules AS H WITH (NOLOCK)
                        WHERE H.AssemblyName = 'Appframe.Web.JsEngine, Version=, Culture=neutral, PublicKeyToken=null')

Related articles

Placeholder "LocalizeWeb2016" failed