Skip to content

Database

Roman Kuzmin edited this page Feb 17, 2025 · 2 revisions

Подключение баз данных в StarBank

В системе StarBank используются две базы данных:

  1. H2 (файловая база данных) – содержит информацию о транзакциях пользователей.
  2. PostgreSQL – основная база для хранения динамических правил рекомендаций.

Все параметры подключения можно задать в VM-параметрах при запуске приложения,
или изменить в файле application.properties.


🔹 Подключение H2 (файловая база данных)

H2 используется только для чтения транзакций пользователей.

📌 Указание параметров в VM-параметрах

При запуске приложения укажите следующие параметры:

-Dh2.datasource.url=jdbc:h2:file:./transaction;DB_CLOSE_DELAY=-1;ACCESS_MODE_DATA=r

Если параметр не указан, используется значение по умолчанию:

application.recommendations-db.url=jdbc:h2:file:./transaction;DB_CLOSE_DELAY=-1;ACCESS_MODE_DATA=r

📌 Какие данные хранятся в H2?

  • Пользователи (USERS)
  • Банковские продукты (PRODUCTS)
  • Операции пользователей (TRANSACTIONS)

Как подключить H2? (будет ссылка на отдельную страницу)


🔹 Подключение PostgreSQL

PostgreSQL используется для хранения динамических правил и статистики.

📌 Указание параметров в VM-параметрах

При запуске приложения можно задать строку подключения:

-Dpostgres-url=jdbc:postgresql://localhost:5432/starbank
-Dpostgres-login=postgres
-Dpostgres-passwd=your_password

Если параметры не заданы, используются настройки по умолчанию:

spring.datasource.url=jdbc:postgresql://localhost:5432/starbank
spring.datasource.username=postgres
spring.datasource.password=your_password
spring.datasource.driver-class-name=org.postgresql.Driver

📌 Как создать базу PostgreSQL?

  1. Через командную строку (CLI):

    psql -U postgres
    CREATE DATABASE starbank;
  2. Через pgAdmin:

    • Откройте pgAdmin.
    • Нажмите "Create Database".
    • Введите имя starbank и нажмите Save.

🔹 Демо-набор данных в PostgreSQL

При первом запуске проекта в базе PostgreSQL автоматически создаются таблицы
и загружается демо-набор данных, содержащий:

  • Наборы правил (rule_sets) – правила, определяющие, какие продукты рекомендовать.
  • Отдельные правила (rules) – логические условия для рекомендаций.
  • Статистика срабатывания правил (rule_stats) – сколько раз каждое правило применялось.

📌 Автоматическая загрузка данных

При запуске Spring Boot Liquibase автоматически создаст таблицы и заполнит их.

Если вам нужно очистить демо-данные, выполните:

TRUNCATE TABLE rule_stats, rules, rule_sets RESTART IDENTITY CASCADE;

🔹 Итог

  • H2 используется для транзакций, PostgreSQL — для правил.
  • Параметры подключения можно задать через VM-аргументы (-Dpostgres-url=...).
  • По умолчанию база PostgreSQL должна называться starbank.
  • Настройки можно изменить в application.properties.

После настройки перезапустите сервер, и система будет готова к работе!

Clone this wiki locally