#sql-server #liquibase
#sql-server #liquibase
Вопрос:
Я новичок в Liquibase. Я использую Liquibase версии 4.0 и Windows 10 Home edition
Starting Liquibase at 23:08:42 (version 4.0.0 #19 built at 2020-07-13 19:45 0000)
Liquibase Version: 4.0.0
Liquibase Community 4.0.0 by Datical
Я добавил одну таблицу и SP в DATABASEONE
. Я также сгенерировал разницу между двумя базами данных, и это сработало нормально.
liquibase diffChangeLog
liquibase.properties
driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
classpath=../mssql-jdbc-8.4.0.jre11.jar
url=jdbc:sqlserver://localhost;databaseName=DATABASETWO
username=sa
password=Password123
referenceUrl=jdbc:sqlserver://localhost;databaseName=DATABASEONE
referenceUsername=sa
referencePassword=Password123
changeLogFile=diff.xml
Однако Liquibase не сообщает о различиях в хранимых процедурах.
Как я могу получить недавно добавленную (или) отсутствующую информацию о хранимых процедурах в diffChangeLog
?
Редактировать
Я использовал лицензионный ключ Pro (14-дневная пробная версия) для генерации diff для хранимых процедур
Я также сгенерировал liquibase updateSQL > update.sql
. Теперь я хочу запустить ‘update.sql’ для другой базы данных. Как я могу это сделать?
Комментарии:
1. Не могли бы вы попробовать
diff
команду? Отображает ли это различия в хранимых процедурах?2. ДА. Я уже пробовал, и SPS не существует в файле результатов. Между тем, я использую 14-дневный лицензионный ключ pro, и теперь он выдает SPS в результирующем файле. Не уверен, будут ли изменения SP фиксироваться только в версии PRO
3. Согласно документации , версия liquibase для сообщества будет обрабатывать хранимые процедуры с помощью
diffChangeLog
command. На мой взгляд, это какая-то ошибка.4. Отредактировал сообщение, добавив еще один вопрос. Пожалуйста, ответьте, если это возможно
Ответ №1:
Запуск обновления для update.sql, сгенерированного командой liquibase updateSQL > update.sql, вернет дополнительные данные, которые являются отладочной информацией. Не просто прямой SQL. Вы захотите:
- используйте generateChangeLog для создания файла журнала изменений (назовем его change.postgresql.xml )
- запустите обновление liuqibase, используя приведенный выше файл журнала изменений и URL целевой базы данных
Обратите внимание, если это разные платформы БД, например, из postgres-> mysql, тогда вам придется просмотреть сгенерированный журнал изменений (в данном случае change.postgresql.xml ) для объектов целевой базы данных, не являющихся спецификациями (в данном примере mysql).
Ответ №2:
К сожалению, вы не можете отличить хранимую функцию / процедуру в соответствии с документом diff-changelog
Дополнительная функциональность с Liquibase Pro
В то время как Liquibase с открытым исходным кодом хранит все наборы изменений в журнале изменений, Liquibase Pro создает каталог с именем Objects и размещает каталог на том же уровне, что и ваш журнал изменений. Каталог объектов содержит подкаталог для каждого из следующих хранимых логических типов:
- checkconstraint
- пакет
- packagebody
- процедура
- функция
- триггер
- синонимы