Spring Boot Web Application (MVC): готовим приложение к деплою, наводим порядок: фиксируем структуру БД и переходим на версионирование БД с использованием flyway. Дополнительно добавляем в БД дефолтного администратора и добавляем страницу профиля пользователя, где каждый пользователь может поменять свой пароль или email. Миграции нужны для версионирования изменений БД в соответствии со структурой доменной модели. Проще говоря: при запуске проекта из репозитория с нуля на любом этапе, мы получим нужную структуру БД, со всеми таблицами и полями, которые нужны для работы приложения + все необходимые данные, вроде дефолтного администратора. Сайт flyway:
Код из видео:
Самой первой миграцией нужно задать стартовую структуру БД. Для этого добавим в наш файл application.properties следующие свойства:
И запустим приложение. В логах приложения ищем записи, начинающиеся со слова Hibernate и копируем все строки, в которых создаются объекты БД. После этого создаём директорию миграций db/migration в директории проекта resources, куда добавляем первый файл миграции с именем V1__Init_db.sql. Правила оформления имен файлов можно почитать тут:
В этот файл вставляем скопированные из логов скрипты и оформляем код, в соответствии с требованиями синтаксиса SQL. Осталось добавить зависимость на flyway и переход на миграции окончен:
Теперь при разворачивании приложения на сервере мы получим чистую БД. Соответственно, все новые пользователи будут иметь рядовые права и создать администратора будет невозможно без прямого доступа к БД. Чтобы исправить этот огрех, добавим миграцию, в которой вручную опишем добавление администратора по умолчанию. Создаём скрипт миграции V2__Add_admin.sql и описываем там добавление пользователя. Теперь администратор есть, но у него фиксированный и простой пароль, который он (да и любой другой пользователь) не может изменить. Также никто из пользователей не может изменить свой email. Для добавления редактора этих полей, создаём шаблон profile.ftl и ответную его часть в контроллере UserController. В UserService добавляем код, обрабатывающий смену пароля и почтового адреса. Если происходит смена почты, то повторно отправляем пользователю ссылку на подтверждение почтового адреса Для проверки корректности работы приложения можно использовать сервис времменых почтовых ящиков:
Твиттер: / letscodedru Чат в Discord: / discord Группа Вконтакте: https://vk.com/letscodedru
Канал в Telegram:
Чат в Telegram:
Поддержать проект: Patreon / letscodedru Яндекс.Деньги
PayPal paypal.me/letscodedru Qiwi
WebMoney/BitCoin
Ссылка на канал: / @letscodedru Ссылка на Яндекс.Дзен: