Суть проекта: веб-приложение, которое позволит клиентам онлайн записываться к мастерам и салонам красоты на услуги. Мастера, в свою очередь, смогут определять предоставляемые услуги, определять свой рабочий график, вести учёт клиентов, отслеживать статистику своей работы.
Быстрого разворачивания приложения без сложной настройки можно добиться через Docker
- Установленный Docker на машину
- docker-compose файл
- Файл-скрипт инициализации базы данных
- war-файл проекта
- внутри war-файла по пути WEB-INF/classes в файле application.properties установлено значение spring.profiles.active=prod
- Название файла строго ROOT.war
- Выгрузите необходимые файлы в одно место на машине (compose-файл, sql-скрипт, war-файл)
- В файле compose.yaml укажите пути к файлам .sql и .war (секция volumes)
- Укажите папку, в которой будут находиться файлы mysql (они будут связаны с файлами виртуальной машины)
- С помощью командной строки перейдите в директорию с compose-файлом и запустите команду docker-compose up -d
В проекте есть механизм миграций, который позволяет применять изменения к существующей БД посредством версионируемых скриптов.
То есть. Если при выполнении задачи одному разработчику нужно было изменить структуру БД, то он создает файл sql с необходимыми изменениями и кладет его в определенную папку. После чего механизм миграций применяет изменения.
Таким образом, мы избавляемся от необходимости каждый раз пересоздавать базу данных для каждого разработчика или заставлять их вручную выполнять скрипты
Фреймворк работает следующим образом:
- Проверяет схему базы данных на наличие таблицы метаданных (по умолчанию SCHEMA_VERSION). Если таблица метаданных не существует, то создает ее.
- Сканирует classpath на наличие доступных миграций.
- Сравнивает миграции с таблицей метаданных. Если номер версии меньше или равен версии, помеченной как текущая, то игнорирует ее.
- Отмечает все оставшиеся миграции как ожидающие (pending). Потом сортирует их по возрастанию номеров версий и выполняет в указанном порядке.
- По мере применения миграций обновляет таблицу метаданных.
- Удостовериться, что в build.gradle указаны верные данные подключения к базе
- Выполнить flywayClean
- Выполнить flywayMigrate
- Выполнить flywayMigrate
Возможно, при загрузке проекта в классах-моделях будет всплывать ошибка на аннотации "Table".
Возникновение ошибки связано с тем, что приложение не связано ни с каким источником данных, либо он не соответствует нужному источнику
- В Intellij Idea переходим через панель инструментов View->Tool Windows->Persistence
- Появилась вкладка Persistence. Пока оставим её
- В правой части экрана выберем вкладку Database
- Далее необходимо настроить наш источник данных
- Нажимаем значок "+" вверху вкладки и выбираем MySql
- Вводим параметры пользователя, пароля и названия БД. Нажимаем Test connection
- После успешной проверки возвращаемся на вкладку "Persistence"
- Нажимаем правой кнопкой по имени проекта и выбираем Assign Data Sources
- Из выпадающего меню выбираемм только что созданный DataSource