Spring Boot Web Application (MVC): готовим приложение к деплою, наводим порядок: фиксируем структуру БД и переходим на версионирование БД с использованием flyway. Дополнительно добавляем в БД дефолтного администратора и добавляем страницу профиля пользователя, где каждый пользователь может поменять свой пароль или email.
Миграции нужны для версионирования изменений БД в соответствии со структурой доменной модели. Проще говоря: при запуске проекта из репозитория с нуля на любом этапе, мы получим нужную структуру БД, со всеми таблицами и полями, которые нужны для работы приложения + все необходимые данные, вроде дефолтного администратора.
Сайт flyway:
flywaydb.org/
Код из видео:
github.com/dru...
Самой первой миграцией нужно задать стартовую структуру БД. Для этого добавим в наш файл application.properties следующие свойства:
gist.github.co...
И запустим приложение. В логах приложения ищем записи, начинающиеся со слова Hibernate и копируем все строки, в которых создаются объекты БД. После этого создаём директорию миграций db/migration в директории проекта resources, куда добавляем первый файл миграции с именем V1__Init_db.sql. Правила оформления имен файлов можно почитать тут:
flywaydb.org/d...
В этот файл вставляем скопированные из логов скрипты и оформляем код, в соответствии с требованиями синтаксиса SQL.
Осталось добавить зависимость на flyway и переход на миграции окончен:
gist.github.co...
Теперь при разворачивании приложения на сервере мы получим чистую БД. Соответственно, все новые пользователи будут иметь рядовые права и создать администратора будет невозможно без прямого доступа к БД.
Чтобы исправить этот огрех, добавим миграцию, в которой вручную опишем добавление администратора по умолчанию. Создаём скрипт миграции V2__Add_admin.sql и описываем там добавление пользователя.
Теперь администратор есть, но у него фиксированный и простой пароль, который он (да и любой другой пользователь) не может изменить. Также никто из пользователей не может изменить свой email.
Для добавления редактора этих полей, создаём шаблон profile.ftl и ответную его часть в контроллере UserController. В UserService добавляем код, обрабатывающий смену пароля и почтового адреса. Если происходит смена почты, то повторно отправляем пользователю ссылку на подтверждение почтового адреса
Для проверки корректности работы приложения можно использовать сервис времменых почтовых ящиков:
temp-mail.org/...
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
➡ Твиттер: / letscodedru
➡ Чат в Discord: / discord
➡ Группа Вконтакте: vk.com/letscod...
➡ Канал в Telegram: t.me/letsCode_dru
➡ Чат в Telegram: t.me/joinchat/...
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
Поддержать проект:
➡ Patreon / letscodedru
➡ Яндекс.Деньги money.yandex.r...
➡ PayPal paypal.me/letscodedru
➡ Qiwi qiwi.me/letscode
➡ WebMoney/BitCoin funding.webmon...
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
Ссылка на канал: / @letscodedru
Ссылка на Яндекс.Дзен: zen.yandex.ru/...
Негізгі бет Spring Boot FlyWay: миграции БД, профиль пользователя
Пікірлер: 289