Как обновить базу данных с помощью ant (управление версиями)? - PullRequest
1 голос
/ 31 января 2012

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

У меня есть идея встроить некоторую метаинформацию (номер версии) в имена сценариев sql.

Например:

  • DB_1.0.0.sql
  • DB_1.0.1.sql
  • DB_1.2.0.sql
  • DB_2.0.0.sql
  • DB_2.1.0.sql

Мой скрипт обнаружил, что текущая версия была 1.0.1, поэтому мне нужно выполнить DB_1.2.0.sql, DB_2Файлы .0.0.sql, DB_2.1.0.sql по заданию SQL.Проблема в том, как найти файлы с помощью ant, которые мне нужно выполнить.

Может быть, это не лучший способ обновить базу данных.У вас есть другая идея?

Ответы [ 2 ]

2 голосов
/ 01 февраля 2012

Flyway работает так, как вы описали.Он ведет учет файлов SQL, уже примененных к базе данных, обеспечивая автоматическое обновление.Простой и понятный в использовании.

Более мощное решение, IMHO, это liquibase .Он имеет синтаксис XML для записи изменений базы данных, что позволяет генерировать кроссплатформенный SQL.Он также обладает рядом мощных функций, таких как возможность отката изменений и выполнения различий между базами данных.

1 голос
/ 31 января 2012

Похоже, ваши имена следуют строгому соглашению.В этом случае вы можете найти файлы, сопоставив шаблон filelist и выполнить, используя sql .

. Вы можете использовать LiquiBase , чтобы написать некоторые задачи, которыеможет помочь в обновлении схемы базы данных -

...