Skip to content

Jahimees/Chikaboom

Repository files navigation

Extra Milieux V0.3.4-BETA

Суть проекта: веб-приложение, которое позволит клиентам онлайн записываться к мастерам и салонам красоты на услуги. Мастера, в свою очередь, смогут определять предоставляемые услуги, определять свой рабочий график, вести учёт клиентов, отслеживать статистику своей работы.


Разворачивание приложения через Docker

Быстрого разворачивания приложения без сложной настройки можно добиться через Docker

Что нужно?

  • Установленный Docker на машину
  • docker-compose файл
  • Файл-скрипт инициализации базы данных
  • war-файл проекта

Убедитесь, что:

  1. внутри war-файла по пути WEB-INF/classes в файле application.properties установлено значение spring.profiles.active=prod
  2. Название файла строго ROOT.war

Разворачивание:

  1. Выгрузите необходимые файлы в одно место на машине (compose-файл, sql-скрипт, war-файл)
  2. В файле compose.yaml укажите пути к файлам .sql и .war (секция volumes)
  3. Укажите папку, в которой будут находиться файлы mysql (они будут связаны с файлами виртуальной машины)
  4. С помощью командной строки перейдите в директорию с compose-файлом и запустите команду docker-compose up -d

Работа с Миграцией (FlyWay)

В проекте есть механизм миграций, который позволяет применять изменения к существующей БД посредством версионируемых скриптов.

То есть. Если при выполнении задачи одному разработчику нужно было изменить структуру БД, то он создает файл sql с необходимыми изменениями и кладет его в определенную папку. После чего механизм миграций применяет изменения.

Таким образом, мы избавляемся от необходимости каждый раз пересоздавать базу данных для каждого разработчика или заставлять их вручную выполнять скрипты

Фреймворк работает следующим образом:

  • Проверяет схему базы данных на наличие таблицы метаданных (по умолчанию SCHEMA_VERSION). Если таблица метаданных не существует, то создает ее.
  • Сканирует classpath на наличие доступных миграций.
  • Сравнивает миграции с таблицей метаданных. Если номер версии меньше или равен версии, помеченной как текущая, то игнорирует ее.
  • Отмечает все оставшиеся миграции как ожидающие (pending). Потом сортирует их по возрастанию номеров версий и выполняет в указанном порядке.
  • По мере применения миграций обновляет таблицу метаданных.

Как с этим работать?

При первом запуске

  1. Удостовериться, что в build.gradle указаны верные данные подключения к базе
  2. Выполнить flywayClean
  3. Выполнить flywayMigrate

При необходимости произвести миграцию

  1. Выполнить flywayMigrate

Работа с JPA

Возможно, при загрузке проекта в классах-моделях будет всплывать ошибка на аннотации "Table".

Возникновение ошибки связано с тем, что приложение не связано ни с каким источником данных, либо он не соответствует нужному источнику

Что делать?

  1. В Intellij Idea переходим через панель инструментов View->Tool Windows->Persistence
  2. Появилась вкладка Persistence. Пока оставим её
  3. В правой части экрана выберем вкладку Database
  4. Далее необходимо настроить наш источник данных
  5. Нажимаем значок "+" вверху вкладки и выбираем MySql
  6. Вводим параметры пользователя, пароля и названия БД. Нажимаем Test connection
  7. После успешной проверки возвращаемся на вкладку "Persistence"
  8. Нажимаем правой кнопкой по имени проекта и выбираем Assign Data Sources
  9. Из выпадающего меню выбираемм только что созданный DataSource

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published