Попробовал создавать БД при помощи Liquibase 5.0.2
by aary
Posted on четверг апреля 09, 2026 at 05:45PM in ЖЖ
Технический отчёт за сегодня
1. Настройка развёртывания приложения
- Устранена ошибка сборки, связанная с несуществующей версией родительского POM Spring Boot.
- Настроен Tomcat Manager API для удалённого деплоя WAR-файла через HTTP-запросы.
- Решена проблема доступа к Manager API (403), вызванная ограничениями по IP в конфигурации контекста Tomcat.
- Создан скрипт предварительной инициализации контейнера для копирования стандартной конфигурации Tomcat и веб-приложения Manager.
2. Подключение к базе данных
- Настроена сетевая связанность между Docker-контейнером Tomcat и сервером PostgreSQL на хосте.
- Исправлены синтаксические ошибки в конфигурации pg_hba.conf, приводившие к отказу в подключении.
- Зафиксирована подсеть Docker в compose.yaml для обеспечения стабильного IP-адреса контейнера и корректной аутентификации в БД.
3. Управление схемой базы данных
- Подключена и настроена миграционная система Liquibase.
- Созданы файлы миграций для автоматического развёртывания таблиц пользователей и ролей.
- Реализована проверка актуальности схемы БД при запуске приложения с перенаправлением на инструкции по обновлению в случае несоответствия.
- Добавлено логирование статуса выполнения миграций.
4. Система аутентификации и авторизации
- Настроена Spring Security с хранением учётных записей в базе данных PostgreSQL.
- Реализована публичная страница регистрации новых пользователей.
- Создана административная панель с возможностью просмотра списка пользователей и блокировки/разблокировки учётных записей.
- Реализовано автоматическое создание учётной записи администратора при первом запуске либо через веб-форму мастера установки, либо через переменные окружения.
5. Мастер первоначальной настройки
- Разработан контроллер, выполняющий проверку готовности окружения (наличие БД, версия СУБД, состояние схемы, наличие администратора).
- Создан набор информационных страниц с пошаговыми инструкциями для устранения типовых проблем (отсутствие подключения к БД, необходимость обновления СУБД, запуск миграций и др.).
- Обеспечено блокирование доступа к страницам мастера после завершения настройки.
6. Доработка интерфейса и навигации
- Скорректированы ссылки в шаблонах для корректной работы с контекстом приложения.
- Устранены ошибки в Thymeleaf-выражениях, вызывавшие исключения при отсутствии активного профиля Spring.
- Актуализировано содержимое главной страницы в соответствии с предметной областью.
7. Оптимизация и диагностика
- Выявлена и решена проблема длительного запуска Tomcat, связанная со сканированием TLD в JAR-файлах.
- Добавлены инструкции по точечному отключению сканирования TLD через контекстный XML-файл.
- Рассмотрены рекомендации по улучшению аутентификации в PostgreSQL с использованием SSL-сертификатов и по управлению ограничениями доступа для пользователей.
Результаты
- Приложение успешно развёртывается и работает в целевой среде.
- Обеспечена возможность самостоятельной настройки окружения администратором без ручного вмешательства в конфигурационные файлы.
- Реализован базовый функционал управления пользователями и ролями.