Files
mars/confluence/Universal_Package_Tracking_System.md
Grzegorz Michalski ecd833f682 Init
2026-02-02 10:59:29 +01:00

3.1 KiB

Simple Package Version Tracking

Overview

Simple Oracle package version tracking system with a clear package list at the beginning of the script.

📖 For comprehensive deployment workflow, see: Package Deployment Guide
This document covers only the tracking script usage. For full deployment process, version update guidelines, and troubleshooting, refer to the main deployment guide.

Available Scripts

  1. track_package_versions.sql - Tracks package versions in ENV_MANAGER system
  2. verify_packages_version.sql - Verifies all tracked packages for code changes

How to Use?

Step 1: Edit Package List

Open track_package_versions.sql and edit the package list section:

-- ===================================================================
-- PACKAGE LIST - Edit this array to specify packages to track
-- ===================================================================
vPackageList t_string_array := t_string_array(
   'CT_MRDS.FILE_MANAGER',
   'ODS.FILE_MANAGER_ODS'
   -- Add more packages here:
   -- ,'CT_MRDS.DATA_EXPORTER'
   -- ,'MRDS_LOADER.CLOUD_WRAPPER'
);
-- ===================================================================

Step 2: Use in Your Script

-- install_mars1049.sql
PROMPT Installing packages...
@@new_version/FILE_MANAGER.pkg
@@new_version/FILE_MANAGER.pkb

PROMPT Tracking versions...
@@track_package_versions.sql

PROMPT Verifying all packages...
@@verify_packages_version.sql

Script Details

track_package_versions.sql

  • Purpose: Register package versions in A_PACKAGE_VERSION_TRACKING
  • When: After installing/rolling back packages
  • Output: Simple list of package versions

verify_packages_version.sql

  • Purpose: Verify all tracked packages for code changes
  • When: At the end of install/rollback scripts
  • Output: Detailed status for all tracked packages (OK/WARNING)

Example Output

========================================
Package Version Tracking
========================================
Packages tracked: 2 of 2

CT_MRDS.FILE_MANAGER = 3.2.1
ODS.FILE_MANAGER_ODS = 2.1.0
========================================

Configuration Examples

MARS-1049 (FILE_MANAGER System)

vPackageList t_string_array := t_string_array(
   'CT_MRDS.FILE_MANAGER',
   'ODS.FILE_MANAGER_ODS'
);

MARS-1011 (WORKFLOW_MANAGER)

vPackageList t_string_array := t_string_array(
   'CT_MRDS.WORKFLOW_MANAGER'
);

System with Multiple Packages

vPackageList t_string_array := t_string_array(
   'CT_MRDS.FILE_MANAGER',
   'CT_MRDS.DATA_EXPORTER',
   'CT_MRDS.FILE_ARCHIVER',
   'ODS.FILE_MANAGER_ODS',
   'MRDS_LOADER.CLOUD_WRAPPER'
);

Requirements

Each package in the list must have:

FUNCTION GET_VERSION RETURN VARCHAR2;

Benefits

  • Clear List - see immediately which packages are tracked
  • Easy Editing - add/remove package lines
  • Zero Configuration - aside from the package list
  • Universal - copy script to any MARS issue
  • Simple Output - just package names and versions