Migration descriptor file
Introduction
This document describes the migration configuration file (called migration descriptor) used to specify a sequence of migrations in a system. The migration descriptor file provides a way to describe the actions to be taken during the migrations declaratively.
The descriptor file must be named migration.yml, and it should be located in the root of the specified directory.
Example:
$schema: https://documentation.noumenadigital.com/schemas/migration-schema-v2.yml
changesets:
- name: 1.0.0
changes:
- migrate:
sources:
- npl-1.0.0
- npl-run:
protocol: pkg/Factory
action: create
- name: 1.0.1
changes:
- migrate:
sources:
- npl
migrations:
- kotlin-script/S0001_migration.kts
The log
The migration log describes an ordered list of change sets to be applied to an environment. A change set will be applied to that environment to 'bring it up to date' by only applying the changes that have not yet been applied.
$schema: https://documentation.noumenadigital.com/schemas/migration-schema-v2.yml
changesets:
- name: change_set_1
- name: change_set_2
- name: change_set_3
Validation
The migration descriptor now follows the JSON Schema convention, which allows you to specify the version of the schema
being used. When used in a supported editor, this enables inline validation, error highlighting, keyword suggestions,
autocompletion, and detailed documentation for each key. To specify the schema version, use the $schema key with the
URL of the desired schema version. To reference the latest version
(v2)
Samples
Loading sources
$schema: https://documentation.noumenadigital.com/schemas/migration-schema-v2.yml
changesets:
- name: 1.0.0
changes:
- migrate:
sources:
- npl-1.0.0
Loading sources with applying rules
$schema: https://documentation.noumenadigital.com/schemas/migration-schema-v2.yml
changesets:
- name: 1.0.0
changes:
- migrate:
sources:
- npl-1.0.0
rules: rules/rules.yml
Loading sources, and applying transformation
$schema: https://documentation.noumenadigital.com/schemas/migration-schema-v2.yml
changesets:
- name: 1.0.0
changes:
- migrate:
sources:
- npl-1.0.0
- npl-run:
protocol: pkg/Factory
action: create
- name: 1.0.1
changes:
- migrate:
sources:
- npl
migrations:
- kotlin-script/S0001_migration.kts
Migration using run-only
$schema: https://documentation.noumenadigital.com/schemas/migration-schema-v2.yml
changesets:
- name: 1.0.0
changes:
- migrate:
sources:
- npl-1.0.0
- npl-run:
protocol: pkg/Factory
action: create
run-only:
- DEV
- name: 1.0.1
changes:
- migrate:
sources:
- npl
migrations:
- kotlin-script/S0001_migration.kts