Я только начал использовать Liquibase и напутал проблему, чтобы различать возможности разных баз данных.Как различать базы данных при использовании, например, sequence
Мы хотели бы поддерживать несколько баз данных (Oracle, MySQL, Derby - для обозначения трех).
Все имеют разные возможности. В частности, Oracle поддерживает sequences
, тогда как MySQL и Derby этого не делают.
Когда я позволяю hibernate генерировать DDL, я могу выбрать разные диалекты, и он рассмотрит эти различные возможности и сгенерирует Sequencer
при использовании Oracle и использует обычную таблицу (для генерации ID) при использовании Derby или MySQL.
Теперь я знаю, что могу ограничить набор изменений, указав «oracle
» в атрибуте dbms
. Но как я могу сделать решение простой таблицы для других баз данных? Кажется, что для dbms
атрибут «нет оракула» не существует.
Как кто-либо еще справляется с этим? (Я не мог найти ничего об этом на страницах ликбезы и на форуме.)
Thx для вашей помощи Mark. Я уже нашел «preConditions», но это означает, что я должен перечислить все базы данных, которые не поддерживают «последовательности». Если Liquibase расширяет список поддерживаемых баз данных (или один поддерживающий non-sequence db поддерживает это в будущей версии), я должен был бы подумать об этом и расширить список. Я надеялся, что решение «нужно снова подумать об этом снова». – Jens
О, может быть, теперь я понимаю, что вы подразумеваете под булевыми операциями: вы можете добавить '' примерно так: ' '. –
Jens
Да, это было то, что я имел в виду. В любом случае вам придется поддерживать какой-то список. Базы данных, которые поддерживают (или не поддерживают) последовательности. Поистине кросс-платформенная схема не без проблем :-) –