Skip to content
This repository has been archived by the owner on Nov 9, 2022. It is now read-only.

Upgrading MarkLogic

David Cassel edited this page Sep 25, 2015 · 6 revisions

When you upgrade the version of MarkLogic that a project is deployed to, you may need to make some changes to your Roxy configuration. This wiki shows Roxy-specific changes that you'll need to address. Note that MarkLogic itself may require other changes, such as the difference in how JSON is handled between MarkLogic 7 and MarkLogic 8.

Best practice is to upgrade Roxy itself first, make sure it works, then upgrade MarkLogic and make the necessary adjustments.

Upgrading from ML7 to ML8

  • change the server-version property from 7 to 8
  • In MarkLogic 8, REST API instances must use the declarative rewriter.
    • Make the following property change for --app-type=rest applications: url-rewriter=/MarkLogic/rest-api/rewriter.xml
    • For --app-type=hybrid, see the fix suggested in issue #416
    • --app-type=mvc is not affected by this change
  • Remove error-format from rest-api/config/properties.xml
  • For rest or hybrid applications, you may need to specify update mode for POST functions in REST extensions. MarkLogic 8.0-2+ defaults POST functions to query mode. If your function makes any changes to the database, you will get an XDMP-UPDATEFUNCTIONFROMQUERY error. Fix this by adding `%rapi:transaction-mode("update") to XQuery extensions.

Example declaration:

declare 
%roxy:params("") 
%rapi:transaction-mode("update") 
function yourNSAlias:post(