This topic discusses the dependency API provided by the migration framework.

  • A migration packet can have dependencies that are evaluated during migration to determine wheter the packet should run or not
  • When the dependencies are not met, the packet is marked as pending
    • The MinVersion and MaxVersion dependencies as well as the DBMSDependency will mark a packet as unnecessary instead

Classes

BaseDependency

The base class.

  • All dependencies must subclass this class.

Methods

FunctionParametersReturn ValueDescription
BaseDependency.__init__(self)

Initializes the dependency
BaseDependency.get_log_content(self)

Retrieves a list of all log statements in the buffer and clears it
BaseDependency.log(self, text)text: String
Writes into the internal log buffer

Properties

PropertyGetterSetterDescription
BaseDependency.is_metThis property is abstract and must be implemented in a subclass. It must be returned if the condition of the dependency is satisfied

DBMSDependency

Dependency on the type of database used.

Methods

FunctionParametersReturn ValueDescription
DBMSDependency.__init__(self, expected_dbms)expected_dbms: '000002' for Oracle and '000004' for MSSQL
Initializes the dependency

MaxVersionDependency

Dependency on database changeset

  • Will check whether the value in database changeset is greater or equal to the version this dependency was initialized with

Methods

FunctionParametersReturn ValueDescription
MaxVersionDependency.__init__(self, version)version: Customizing version like '39.5.11'
Initializes the dependency

MinVersionDependency

Dependency on database changeset

  • Will check whether the value in database changeset is less or equal to the version this dependency was initialized with

Methods

FunctionParametersReturn ValueDescription
MinVersionDependency.__init__(self, version)version: Customizing version like '39.5.11'
Initializes the dependency

PacketDependency

Methods

FunctionParametersReturn ValueDescription
PacketDependency.__init__(self, packet_path, expected_state)packet_path: Python path
expected_state: PacketState

Initializes the dependency