Предоставляет ли liquibase доступ к java.sql.Connection для пользовательских задач - PullRequest
4 голосов
/ 23 января 2012

Есть ли способ заставить liquibase вызывать пользовательский класс / плагин Java и предоставлять этому классу доступ к базовому соединению для внесения изменений в данные. Я посмотрел, но это только

Итак, наши шаги по обновлению требуют обширных манипуляций с данными, которые гораздо проще сделать и отладить в коде, чем с использованием SQL. Поэтому я хотел бы написать задачи, которые могут извлекать, преобразовывать и сохранять данные. Возможно ли это в рамках жидкой основы?

1 Ответ

6 голосов
/ 24 января 2012

Если вы используете подкласс Change с использованием инфраструктуры расширений (liquibase.org/extensions), метод generateStatements () передается объекту Database, для которого выполняется изменение. Звонок

((JdbcConnection) Database.getConnection()).getUnderlyingConnection() 

вернет используемое java.sql.Connection.

Если вы используете интерфейс CustomTaskChange, выполняемому методу execute () передается тот же объект базы данных, с которым вы можете получить соединение.

...