# Migrating reusable transformations

You can migrate reusable transformations from one environment to another, while preserving custom objects in the target environment.

For information on reusable transformations, see [Defining reusable transformations](https://help.qlik.com/en-US/compose/December2024/Content/ComposeDWDL/Main/DW/Model/define_reusable_transformations.htm).

## Reusable transformations

The ReusableTransformation.csv file includes a row per reusable transformation parameter and is described in the table below. Note that some reusable transformations may have no parameters.

Reusable transformations CSV mapping rules

| Header name | Required | If column is missing | If value is missing | Comments |
| --- | --- | --- | --- | --- |
| Name | Yes | Reject | Reject | Case insensitive |
| Category | No | On ADD: General | On ADD: General | Case sensitive |
| Description | No | Empty | Empty |  |
| Expression | No | On ADD: Empty | On ADD: Empty |  |

## Reusable transformations parameters

The ReusableTransformationParams.csv file is described in the table below.

Reusable transformations parameters CSV mapping rules

| Header<br>name | Required | If column is missing | If value is missing | Comments |
| --- | --- | --- | --- | --- |
| Reusable Transformation Name | Yes | Reject | Reject | Case insensitive |
| Parameter Name | Yes | Reject | Reject | Case insensitive |
| Data Type | No | On ADD: VarChar | On ADD: VarChar | According to reusable transformation data types (i.e. no length and scale) |
| Description | No | Empty | Empty |  |

## General guidelines

It's important to take note of the following:

* On export:
  * The order in which the parameters will be written is determined by their order in the web console
  * The order of reusable transformations in the CSV file is alphabetical
  * Reusable transformations are considered part of the model, which means users need the import model permission in order to import them.
  * Column order has no meaning; only column names (case insensitive)
  * All CSVs are optional
  * The CSV files do not contain or rely on internal object IDs, rather, they rely on object names.
* On import, existing reusable transformations *will be overridden by the information from the CSV file*.