Как обрабатывать несколько сценариев создания схемы базы данных с Maven? - PullRequest
2 голосов
/ 06 октября 2010

У меня есть приложение в разработке, которое поддерживает несколько баз данных, включая SQL * Server 2008, Oracle 10G, Oracle 11G, MYSQL 5 и т. Д. Уже в Maven я сделал три вещи:

1) Существуетпрофиль для каждой базы данных, чтобы система могла использовать его для тестирования интеграции во время сборки.

2) Maven вызывает плагин hibernate3 для автоматической генерации сценария схемы с использованием hbm2ddl.

3) A HudsonМатричная сборка настроена таким образом, что интеграционные тесты запускаются для каждой базы данных автоматически.

Я заметил (не удивительно), что сценарий, созданный hbm2ddl, отличается в зависимости от диалекта базы данных.

Однако при упаковке системы для клиентов мы должны вручную перейти к различным сборкам Hudson и извлечь оттуда сценарии, специфичные для базы данных.Утомительный процесс, который, я уверен, укусит нас в самый неподходящий момент !!

В любом случае мы можем заставить Maven автоматически генерировать, а затем собирать все эти сценарии базы данных, чтобы они могли быть упакованы вместеWAR-файл мы отправляем клиентам?Я думал о сборочном плагине Maven, чтобы сжать все это, но я не уверен!

1 Ответ

1 голос
/ 06 октября 2010

Есть ли в любом случае, что мы можем заставить Maven автоматически генерировать и затем собирать все эти сценарии базы данных, чтобы они могли быть упакованы вместе с файлом WAR, который мы отправляем клиентам? Я думал о сборочном плагине Maven, чтобы все сжать, но я не уверен!

Проблема в том, что сценарии генерируются для каждого запуска профиля (по крайней мере, это мое понимание), и если вы не упакуете их в какие-то отдельные артефакты (могут быть сборки) и устанавливаете / развертываете их при каждом запуске, вы выиграли не сможет захватить их на следующем шаге с Maven.

Альтернативой может быть определение модуля с несколькими выполнениями цели hbm2ddl. Но я боюсь, что это победит весь материал профиля.

Или вы можете использовать Плагин дополнительных шагов M2 , чтобы положиться на Хадсона и добавить некоторые шаги после сборки в сборки Maven (не уверен, поможет ли это).

...