7.8 KiB
Инструкция по переносу проекта на новый компьютер
Быстрый старт
Что работает сразу (без настройки)
-
Dev профиль (H2 база данных) — работает сразу без установки PostgreSQL
- Данные хранятся в файле
data.mv.db(уже есть в проекте) - Не требует установки отдельного сервера БД
- Данные хранятся в файле
-
Java 21 — должна быть установлена
Что нужно настроить (опционально)
- PostgreSQL — только если нужно запускать с профилем
prod - Node.js — только если нужно собирать фронтенд
Пошаговая инструкция
Шаг 1: Проверка Java
Убедитесь, что установлена Java 21:
java -version
Должно быть что-то вроде:
openjdk version "21.x.x"
Если Java нет:
- Скачайте с Oracle JDK или OpenJDK
- Установите и добавьте в PATH
Шаг 2: Запуск проекта (Dev профиль - H2)
Проект использует Gradle Wrapper, поэтому Gradle не нужно устанавливать отдельно.
Windows:
cd demo
.\gradlew.bat bootRun
Linux/Mac:
cd demo
./gradlew bootRun
Профиль dev используется по умолчанию. Приложение запустится на порту 8080.
Проверка:
Шаг 3: Настройка PostgreSQL (только для prod профиля)
Если нужно запускать с профилем prod, установите PostgreSQL:
Установка PostgreSQL (Windows)
- Скачайте PostgreSQL: https://www.postgresql.org/download/windows/
- Установите PostgreSQL (запомните пароль для пользователя
postgres) - Запустите pgAdmin или используйте командную строку
Создание базы данных
Откройте psql или pgAdmin и выполните:
CREATE DATABASE demo;
Или через командную строку:
psql -U postgres
CREATE DATABASE demo;
\q
Проверка настроек
В файле src/main/resources/application-prod.yml должны быть настройки:
spring:
datasource:
url: jdbc:postgresql://127.0.0.1/demo
username: postgres
password: postgres # ← Укажите ваш пароль PostgreSQL
⚠️ Важно: Если пароль PostgreSQL отличается от postgres, измените его в файле!
Запуск с prod профилем
Windows:
.\gradlew.bat bootRun -Pprod
Linux/Mac:
./gradlew bootRun -Pprod
Шаг 4: Миграции базы данных
Проект использует Liquibase для миграций. Миграции запускаются автоматически при старте приложения.
Файлы миграций находятся в:
src/main/resources/db/changes/
При первом запуске Liquibase:
- Создаст все таблицы
- Заполнит начальные данные (эпохи, страны)
Если нужно сбросить БД и начать заново:
- Для H2: удалите файл
data.mv.dbи перезапустите приложение - Для PostgreSQL: удалите и создайте базу заново
Полезные команды
Запуск приложения
# Dev профиль (H2) - по умолчанию
.\gradlew.bat bootRun
# Prod профиль (PostgreSQL)
.\gradlew.bat bootRun -Pprod
# С фронтендом
.\gradlew.bat bootRun -Pfront
Сборка проекта
# Собрать JAR файл
.\gradlew.bat bootJar
# Очистить и собрать
.\gradlew.bat clean build
Запуск тестов
# Все тесты (dev профиль)
.\gradlew.bat test
# Тесты с prod профилем
.\gradlew.bat test -Pprod
Просмотр H2 базы данных (dev профиль)
После запуска приложения с dev профилем:
- Откройте: http://localhost:8080/h2-console
- JDBC URL:
jdbc:h2:file:./data - Username:
sa - Password:
sa - Нажмите "Connect"
Структура проекта
demo/
├── src/
│ ├── main/
│ │ ├── java/ # Java код
│ │ └── resources/
│ │ ├── application.yml # Основная конфигурация
│ │ ├── application-dev.yml # Dev профиль (H2)
│ │ ├── application-prod.yml # Prod профиль (PostgreSQL)
│ │ └── db/
│ │ ├── master.yml # Liquibase master файл
│ │ └── changes/ # Файлы миграций
│ └── test/ # Тесты
├── data.mv.db # H2 база данных (dev)
├── build.gradle # Конфигурация Gradle
├── gradlew # Gradle Wrapper (Linux/Mac)
└── gradlew.bat # Gradle Wrapper (Windows)
Частые проблемы
Ошибка: "Could not find or load main class"
Решение: Выполните:
.\gradlew.bat clean build
Ошибка подключения к PostgreSQL
Проверьте:
- PostgreSQL запущен
- База данных
demoсоздана - Пароль в
application-prod.ymlправильный - Порт 5432 не заблокирован
Проверка подключения:
psql -U postgres -d demo
Порт 8080 уже занят
Измените порт в src/main/resources/application.yml:
server:
port: 8081 # или другой свободный порт
Ошибка миграций Liquibase
Для dev профиля (H2):
- Удалите файл
data.mv.dbи перезапустите
Для prod профиля (PostgreSQL):
- Удалите базу данных и создайте заново
- Или проверьте логи для конкретной ошибки
Что перенеслось автоматически
✅ Код приложения
✅ Конфигурация Gradle
✅ Миграции Liquibase
✅ Данные H2 (файл data.mv.db)
✅ Статические файлы фронтенда
❌ PostgreSQL база данных (нужно установить и настроить отдельно)
Контакты и документация
- Swagger UI: http://localhost:8080/swagger-ui.html
- API Docs: http://localhost:8080/api-docs
- H2 Console (dev): http://localhost:8080/h2-console
Следующие шаги
- ✅ Убедитесь, что Java 21 установлена
- ✅ Запустите проект с dev профилем
- ✅ Проверьте Swagger UI
- ⏭️ (Опционально) Установите PostgreSQL для prod профиля
- ⏭️ (Опционально) Настройте фронтенд, если нужно
Если что-то не работает, проверьте логи в консоли или файле логов.