Поддерживает ли XL Deploy Fluent Migrator?
Я хочу использовать Fluent Migrator для миграции баз данных для моего проекта.net. У кого-нибудь есть истории успеха Fluent Migrator, интегрированного с XL Deploy для развертывания базы данных?
С уважением, Pandian.
1 ответ
Это можно сделать с помощью настроек с использованием правил XLDeploy. Сначала вам нужно иметь скрипт миграции, который будет содержать шаги, необходимые для запуска вашей базы данных.
Затем вам нужно добавить или изменить следующие файлы в папке ext сервера XL Deploy:
1- синтетический.xml, который будет содержать определенные типы элементов конфигурации (CI). Например, они будут содержать параметры, которые необходимо передать в сценарий, как показано ниже,
<type type="MigrateDB.DeployedScripts" extends="udm.BaseDeployedArtifact" deployable-type="MigrateDB.Scripts" container-type="MigrateDB.Runner">
<property name="username"
kind="string"
required="false"
description="The user to use to connect to the database."/>
<property name="password"
kind="string"
required="false"
password="true"
description="The password to use to connect to the database."/>
<property name="schemas"
kind="set_of_string"
required="true"
description="list of schemas."/>
</type>
2- xl-rules.xml, который будет содержать правила, которые определены
Сначала вы определяете, когда вам нужно, чтобы это правило запускалось так же, как при первоначальном развертывании, или обновлялось с помощью настройки условия, как показано ниже.
<conditions>
<type>MigrateDB.DeployedScripts</type>
<operation>CREATE</operation>
<operation>MODIFY</operation>
</conditions>
Затем вы можете определить местоположение вашего скрипта миграции, который будет относительно директории ext, как показано ниже,
<jython>
<description expression="true">"Run migration"</description>
<order>50</order>
<script-path>MigratDB/run-migration.py</script-path>
</jython>
Обязательно перезапустите сервис XLDeploy после применения этих изменений. Вы можете посмотреть, как создается этот плагин xld-flyway-plugin. Вы также можете попробовать обнаружить и использовать его, поместив его jar в каталог плагинов.