Что такое Celesta?

Celesta — инструмент для Java backend-разработчиков, ищущих более быстрые и простые способы разработки приложений на основе реляционных баз данных.

Это Java-библиотека и Maven-плагин, предоставляющие возможности миграций базы данных, ORM и тестирования.

В отличие от, например, Hibernate + Liquibase, Celesta не отделяет задачи дизайна схемы базы данных и миграций схемы, и предоставляет быстрый и легковесный способ юнит-тестирования кода, работающего с базой данных.

Может быть использована путём подключения внешней зависимости через Maven Central, также имеет собственный Spring Boot starter.

640px Duke2 2

1. Основные возможности

  1. Независимость от типа базы данных. Решение, сделанное в Celesta, может переноситься между любыми базами данных поддерживаемых типов с сохранением функциональности. Мы по возможности прозрачно для разработчиков решений поддерживаем следующие типы СУБД (список не окончательный):

    • MS SQL Server,

    • Oracle,

    • Postgre SQL,

    • H2,

    • Firebird (beta).

  2. Database-first проектирование структуры данных. В Celesta проектируются таблицы, связи между ними и представления, а не классы.

  3. Автоматическая миграция структуры базы данных на основе идемпотентного DDL.

  4. Упрощённое модульное тестирование: быстрые тесты классов, работающих с базой данных, на основе in-memory режима базы данных H2.

  5. Автоматически генерируемый на основе структуры БД промежуточный слой доступа к таблицам для написания бизнес-логики.

  6. Взаимодействие приложения с уже сложившейся базой данных (интеграция приложений через базу данных).

  7. Распределение прав доступа к таблицам.

  8. Аудит изменений, производимых в таблицах.