#tomcat #database-schema #liquibase #baseline
#tomcat #база данных-схема #liquibase #базовый уровень
Вопрос:
Как бы запустить проверку базы данных схемы liquibase для базовой строки под Tomcat по расписанию? Например, как развернуть liquibase под Tomcat?
Ответ №1:
Как насчет использования ServletContextListener
и создания внутри него нового объекта Liquibase.
что-то вроде
import java.sql.Connection;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import liquibase.Liquibase;
import liquibase.database.Database;
import liquibase.database.DatabaseFactory;
import liquibase.database.jvm.JdbcConnection;
import liquibase.resource.ClassLoaderResourceAccessor;
import liquibase.resource.CompositeResourceAccessor;
import liquibase.resource.FileSystemResourceAccessor;
import lombok.SneakyThrows;
@WebListener
public class LiquibaseListener implements ServletContextListener {
@SneakyThrows
@Override
public void contextInitialized(ServletContextEvent sce) {
final Connection connection = null;
final Database database = DatabaseFactory.getInstance().findCorrectDatabaseImplementation(new JdbcConnection(connection));
final Liquibase liquibase = new Liquibase("changelogpath", new CompositeResourceAccessor(new ClassLoaderResourceAccessor(), new FileSystemResourceAccessor()), database);
liquibase.update("");
}
}
Или посмотрите внутри SpringLiquibase, как это делается для spring framework, и вы можете черпать вдохновение оттуда.
Комментарии:
1. Спасибо за информацию @bilak в вашем коде, как я могу сказать, что мне нужен вывод JSON для результатов?
2. для каких результатов?
3. Я думал, что есть только один вывод, и он должен отображать каждую проверенную таблицу базы данных и определять, совпадает ли она, или перечислять то, что не совпадает.