How To: Use DMC 9.0 with DaticalDB 8.10

How To: Use DMC 9.0 with DaticalDB 8.10

The DMC 9.0 version addresses a number of CVE issues with Netty and Keycloak from the previous DMC 8.10 version. If you wish to upgrade to DMC 9.0 to address CVEs but cannot upgrade to DaticalDB in the same timeframe, you can perform a workaround to get around the version error:

Current Liquibase Enterprise version: 8.10 | DMCDB version: 9.0
There was an error connecting to the DMC Database (DMCDB).
The client version of Liquibase Enterprise you are using is outdated and must be upgraded to a version that at a minimum matches the DMCDB version.

See below instructions for the workaround.

Instructions

  1. Update the DMC to version 9.0.

  2. On the DMC database, run the below SQL. The DMC server version info is updated with a restart of the app, so a trigger is necessary to ensure the server version info does not get overwritten.

    1. Create a function to update the server version info.

      CREATE OR REPLACE FUNCTION <dmc_schema>.dsvr_pin_server_version() RETURNS trigger AS $$ BEGIN NEW.server_version := '8.10'; RETURN NEW; END; $$ LANGUAGE plpgsql;
    2. Drop the existing trigger if it exists.

      DROP TRIGGER IF EXISTS dsvr_pin_server_version_trg ON <dmc_schema>.dsvr_server_info;
    3. Add a trigger to populate the server version info.

      CREATE TRIGGER dsvr_pin_server_version_trg BEFORE INSERT OR UPDATE ON <dmc_schema>.dsvr_server_info FOR EACH ROW EXECUTE FUNCTION <dmc_schema>.dsvr_pin_server_version();
    4. Apply immediately to the existing row.

      UPDATE <dmc_schema>.dsvr_server_info SET server_version = '8.10';
    5. Verify the current server version info (expect to see server_version = ‘8.10’)

      SELECT id, server_version, external_hostname FROM dsvr_server_info;
  3. Test the configuration by running Packager, Forecast, or Deploy on a DaticalDB 8.10 version that points to a 9.0 DMC installation.

  4. Once you are able to upgrade the DaticalDB version to 9.0, run the following SQL to rollback the workaround.

    1. Drop the trigger.

      DROP TRIGGER IF EXISTS dsvr_pin_server_version_trg ON <dmc_schema>.dsvr_server_info;
    2. Drop the function.

      DROP FUNCTION IF EXISTS <dmc_schema>.dsvr_pin_server_version();
    3. Restore the real version.

      UPDATE <dmc_schema>.dsvr_server_info SET server_version = '9.0';
    4. Verify the current server version info (expect to see server_version = ‘9.0’)

      SELECT id, server_version, external_hostname FROM dsvr_server_info;

 

 

Copyright © Datical 2012-2020 - Proprietary and Confidential