Java-библиотека для поддержки структуры базы данных
Мое приложение всегда разрабатывается, поэтому иногда - при обновлении версии - нужно создавать/изменять/удалять некоторые таблицы, изменять некоторые данные и т.д. Обычно требуется выполнить код sql.
Есть ли библиотека Java, которая может использоваться для обновления моей структуры базы данных в актуальном состоянии (анализируя что-то вроде "db structure version
" ) и выполняя собственный код sql для обновления с одной версии на другой)?
Также было бы здорово иметь некоторые базовые действия (например, добавить/удалить столбец), готовые к использованию с минимальной конфигурацией, то есть имя/тип и без кода sql.
Ответы
Ответ 1
Попробуйте DBDeploy. Хотя я не использовал его в прошлом, похоже, этот проект поможет в вашем случае. DBDeploy является менеджером рефакторинга баз данных, который:
"Автоматизирует процесс установления какие рефакторинги базы данных должны быть работать с конкретной базой данных в чтобы перенести его на конкретный строить".
Известно, что он интегрируется как с Ant, так и с Maven.
Ответ 2
Попробуйте Liquibase.
Liquibase - это открытый источник (Apache 2.0 Лицензия), независимая от базы данных библиотека для отслеживания, управления и применение изменений базы данных. Он построен по простой посылке: вся база данных изменения хранятся в удобочитаемом человеке но отслеживаемая форма и источника.
Поддерживаемые функции:
- расширяемость
- Слияние изменений с несколькими разработчиками
- ветки кода
- Несколько баз данных
- Управление производственными данными, а также различными наборами тестовых данных
- Обновление баз данных с кластерами
- Автоматические обновления или генерация SQL-скриптов, которые могут быть одобрены и применяемый администратором баз данных
- Откат обновлений
- База данных "diff" s
- Создание журналов старта изменений из существующих баз данных
- Создание документации по изменению базы данных
Ответ 3
Мы используем для этого часть программного обеспечения под названием Liquibase. Он очень гибкий, и вы можете настроить его в значительной степени, как хотите. Мы интегрировали его с Maven, поэтому наша база данных всегда актуальна.
Ответ 4
Вы также можете проверить Flyway (400 вопросов, помеченных как SOW) или mybatis (1049 вопросов с тегами). Чтобы добавить к сравнению другие варианты: Liquibase (663 вопроса с тегами) и DBDeploy (24 вопроса с тегами).
Другим ресурсом, который вы можете найти полезным, является сравнение возможностей на веб-сайте Flyway (здесь упоминаются другие связанные проекты).
Ответ 5
Вы должны взглянуть на библиотеки OR Mapping, например. Hibernate
Ответ 6
Большинство ORM-маркеров имеют логику для модернизации схемы для вас, я успешно использовал Hibernate, который автоматически получает по крайней мере базовый материал.