Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Use the metadata.properties file to specify behavior during packaging. 

...

Property

Values

Description

disablePropertySubstitutiontrue | falseTurns off interpretation of properties set in the changelog. See Setting Properties in the Project Changelog
disableSqlParsertrue | false

Overrides the project option enableSqlParser=true.  There is no effect if the project-level setting is enableSqlParser=false.  This property can be used in metadata.properties for folders that use packaging method DIRECT or SQLFILE.  See Using SQL Parser

Note
iconfalse
titleThe SQL Parser and the DATA_DML packaging method

When using the DATA_DML packaging method, the SQL Parser is disabled by default for DML with versions 7.6 and higher.


labels

 labelName[,labelName...]

One or more labels that identify this set of changes so they can be easily identified and deployed as a group. Multiple values must be separated by commas. No expressions are allowed. 

contexts

 contextName[,contextName...]

One or more context names to associate a changes with specified environments. Multiple values must be separated by commas. No expressions are allowed. 

allowRepackaging

true | false

Deprecated starting with Datical DB v4.37. Use rerunnable instead. 

Starting with Datical DB v4.21, this property controls whether you can reuse a filename. The default value is false.

archive

true | false

Deprecated starting with Datical DB v4.37. Use rerunnable instead. 

Starting with Datical DB v4.21, this property controls whether files in the data_dml directory get copied to the archive directory. The default value is true.

rerunnabletrue | false

Starting with Datical DB v4.37, use this property to classify SQL scripts as rerunnable (true) or non-rerunnable (false). Use it in place of the archive and allowRepackaging properties. 

  • Rerunnable scripts can be modified in place and repackaged.  They stay in their original directory and are not archived.
  • Non-rerunnable scripts can be packaged only once. During packaging the original scripts are moved from the original directory to an archive directory. They cannot be copied back and edited after packaging.  To modify non-rerunnable scripts, use the create / replace workflow. See Developer Workflows: Managing Changesets During Development and Test

Stored logic scripts are usually rerunnable as they perform CREATE OR REPLACE operations and can therefore be run multiple times and produce the same result (they are idempotent). 

Set rerunnable to true or false.

  • true - SQL code file is not archived. It can be repackaged.
  • false - SQL code file is archived. It cannot be repackaged.

If not set, the value is assigned based on its type (the folder where it is placed in SCM):

  • ddl - rerunnable=false
  • ddl_direct - rerunnable=false
  • data_dml - rerunnable=false
  • sql_direct - rerunnable=false
  • sql - rerunnable=false
  • procedure - rerunnable=true
  • package - rerunnable=true
  • packagebody - rerunnable=true
  • function - rerunnable=true
  • trigger - rerunnable=true
  • view - rerunnable=true

Important: although the use of archive and allowRepackaging are allowed, they are deprecated. In addition, the following combinations of settings now cause an error during packaging:

  • archive=true and allowRepackaging=true
  • archive=false and allowRepackaging=false

See also Flexible Folder Names. When you use flexible folder names it is important to specify rerunnable correctly. 

packageMethodconvert ddl_direct | direct | data_dml | sqlfile | storedlogic | ssis | changelog

Starting with Datical DB v5.0, specifies how to package the file, one of convert, ddl_direct, direct, data_dml, sqlfile, storedlogic, ssis. Packager further parses storedlogic files to determine their type, one of function, procedure, package, packagebody, trigger, view.  See Flexible Folder Names.

Use the changelog value when packaging Liquibase changelogs. They are processed differently than SQL scripts. See See Packaging Liquibase Changelogs and Flexible Folder Names.

ignoretrue | falseDo not process files in this directory and all subdirectories. See Flexible Folder Names.

schemaName


Schema name or comma-separated list of schema names. 

Use either a literal value or a property. (If using a property, it must exist in the changelog, see Setting Properties in the Project Changelog).

If you use fully-qualified object names in SQL scripts, the schema names in the SQL scripts must match the schema names in the project. Packager returns an error if it encounters a schema reference that is not defined in the project. 

For multi-database projects set, schemaName in the form <database>.<schema>Starting in version 5.4, you can use a wildcard for the schema: <database>.*.  This capability allows you to manage all SQL scripts for the database in a single folder. 

Note
iconfalse
titleQuoting and Casing Considerations When Setting the 'schemaName' property
  • In order to ensure a consistent deployment experience the casing defined for schema names in the Datical Project and the casing used to set this property MUST MATCH.  If they don't match, Deploy Packager will halt with an error
  • It is not necessary to quote schemaName values.  Quotes will be removed during Deploy Packager execution.


Warning
titleWarning

Do not  use schemaName if you are using databaseBackupMode=on_demand in deployPackager.properties with Datical DB versions 5.5 and lower.   (It is okay to use databaseBackupMode=on_demand in deployPackager.properties with Datical DB versions 5.6 and higher.)


ssisPkgNamefilenameName of an SSIS package file, including extension (.dtsv)
ssisConfigfilenameName of an SSIS configuration file, including extension (.dtsConfig)
ssisDestPathpathDestination directory under SSISDB in the SQL Server database. 
ssisDestTypeSQLHow deployed SSIS files are stored on the destination SQL Server. Default is SQL - store the files in the SQL Server database on the destination server. 
ssisPkgNamenameName of an SSIS package file (.dtsx).
ssisProjectNamenameName of anSSIS project file (.ispac).
ssisSupportFileDestPathnetwork-path

Windows shared drive destination for support files that accompany an SSIS package file (.dtsx). (example: \\SSIS-TEST\SSIS_SHARED

versionStrategydeployAll | deployLatest

Starting with Datical DB v4.31, specifies how to deploy existing versions of changesets if multiple versions are available to deploy. Values are not case-sensitive. 

  • deployAll - (default) deploy all eligible versions in the order they appear in changelog.xml. This has been the strategy used historically (before versioning). 
  • deployLatest - deploy only the latest eligible version. 

If versionStrategy is set to any other value, processing stops with an error.

A changeset is eligible to deploy if it meets criteria set in the deploy operation (label expression).

folderOrderComma-separated list of folders

Specified only in the metadata.properties file at the top of the SQL code tree. That directory must be the one specifed by the sqlScmSQLBaseDirproperty in the deployPackager.properties file.

Provide a list of directories, in the order you want them packaged. Files from these directories are pulled to the front of the packaging order in front of any other folders in the packaging job. See Custom Packaging Order


...

Code Block
titleSample metadata.properties file
linenumberstrue
collapsetrue
# 	
# Placement and Precedence
#
# The metadata.properties file applies to all files and subdirectories in the directory where it is found, including the root directory for SQL scripts.
# Additional metadata.properties files can be used in the subdirectories. A property set in a subdirectory overrides the same property set in a parent directory.
#
#
# The following properties can be set in the metadata.properties file:
#
# disablePropertySubstitution - If 'true' - disables variable substitution performed by packager prior to packaging script.  Default value 'false'.
#
# disableSqlParser   - This is only for Oracle.  Overrides the project option enableSqlParser=true.  There is no effect if the project-level setting is enableSqlParser=false.  
#                      This property can be used in metadata.properties for folders that use packaging method DIRECT or SQLFILE.
#
# labels             - One or more labels that identify this set of changes so they can be easily identified and deployed as a group
#                      labelName[,labelName...]
#
# contexts           - One or more context names to associate a changes with specified environments.
#                      contextName[,contextName...]
#
# allowRepackaging   - DEPRECATED starting with Datical DB v4.37. Use [rerunnable] instead.
#                      This property previously controlled whether you can reuse a filename. The default value was 'false', but it is now deprecated.
#
# archive            - DEPRECATED starting with Datical DB v4.37. Use rerunnable instead.
#                      This property previously controlled whether files in the data_dml directory get copied to the archive directory.  
#                      The default value was 'true', but now it is deprecated.
#
# rerunnable         - Classify SQL scripts as rerunnable (true) or non-rerunnable (false). Use it in place of the [archive] and [allowRepackaging] properties.
#                      Set rerunnable to 'true' or 'false':
#                          true - SQL code file is not archived. It can be repackaged.
#                          false - SQL code file is archived. It cannot be repackaged.
#
#                      If not set, the value is assigned based on its type (the folder where it is placed in SCM):
#                          ddl - rerunnable=false
#                          data_dml - rerunnable=false
#                          ddl_direct - rerunnable=false
#                          sql_direct - rerunnable=false
#                          sql - rerunnable=false
#                          procedure - rerunnable=true
#                          package - rerunnable=true
#                          packagebody - rerunnable=true
#                          function - rerunnable=true
#                          trigger - rerunnable=true
#                          view - rerunnable=true
#
#                      Important: although the use of archive and allowRepackaging are allowed, they are deprecated.
#                      In addition, the following combinations of settings now cause an error during packaging:
#                          archive=true and allowRepackaging=true
#                          archive=false and allowRepackaging=false
#
#                      Also you can use Flexible Folder Names. When you use flexible folder names it is important to specify rerunnable correctly.
#
#
# packageMethod      - Specifies how to package the file. One of 'convert', 'ddl_direct', 'direct', 'data_dml', 'sqlfile', 'storedlogic', 'ssis'.
#                      Packager further parses storedlogic files to determine their type, one of 'function', 'procedure', 'package', 'packagebody', 'trigger', 'view'.
#                      Use the 'changelog' value when packaging Liquibase changelogs. They are processed differently than SQL scripts.
#
# ignore             - If 'true' - skip files in this directory and all subdirectories and do not process them.
#
# schemaName         - Schema name or comma-separated list of schema names.
#                      Use either a literal value or a property. The property must exist in the changelog.
#                      If you use fully-qualified object names in SQL scripts, the schema names in the SQL scripts must match the schema names in the project.
#                      Packager returns an error if it encounters a schema reference that is not defined in the project.
#
#                      For multi-database projects set, schemaName in the form <database>.<schema>.
#                      Starting in version 5.4, you can use a wildcard for the schema: <database>.*.
#                      This capability allows you to manage all SQL scripts for the database in a single folder.
#
#                      WARNING
#                      Do not  use [schemaName] if you are using databaseBackupMode=on_demand in deployPackager.properties.
#
# versionStrategy    - Specifies how to deploy existing versions of changesets if multiple versions are available to deploy.
#                      Values are not case-sensitive. 
#                          deployAll - Deploy all eligible versions in the order they appear in changelog.xml. Default value.
#                                      This has been the strategy used historically (before versioning).
#                          deployLatest - deploy only the latest eligible version. 
#
#                      If versionStrategy is set to any other value, processing stops with an error.
#                      A changeset is eligible to deploy if it meets criteria set in the deploy operation (label expression).
#
#
# The following property is only allowed in the root directory (sqlScmSQLBaseDir) and is not allowed in the subdirectories:
#
# folderOrder        - Comma separated list of folder names to enforce the package order of files. This can be used
#                      when packageMethod ordering (deployPacakger property) is insufficient.
#
#
### Microsoft SQL Server ###
#
# SQL Server Integration Services (SSIS) related properties
#
# ssisPkgName        - Name of an SSIS package file, including extension (.dtsv)
#
# ssisConfig         - Name of an SSIS configuration file, including extension (.dtsConfig)
#
# ssisDestPath       - Destination directory under SSISDB in the SQL Server database.
#
# ssisDestType       - How deployed SSIS files are stored on the destination SQL Server.
#                      Default is 'SQL' - store the files in the SQL Server database on the destination server.
#
# ssisPkgName        - Name of an SSIS package file (.dtsx)
#
# ssisProjectName    - Name of anSSIS project file (.ispac)
#
# ssisSupportFileDestPath -
#                      Windows shared drive destination for support files that accompany an SSIS package file (.dtsx)
#                      Example: \\SSIS-TEST\SSIS_SHARED
#

labels=
contexts=
rerunnable= 
packageMethod=
schemaName=
versionStrategy=
disablePropertySubstitution=

...

EvaluatedNot evaluated

data_dml

ddl

ddl_direct

function

package

packagebody

procedure

sql

sql_direct (*see note about Microsoft SQL Server below)

trigger

view

sqlplus


...