Может ли Grails 2.x schema-export или аналогичная команда генерировать DDL для обновлений схемы, предоставленных источником данных?
Экспорт схемы Grails отлично справляется с генерацией DDL для создания схем базы данных для конкретной базы данных. Однако я хотел бы, чтобы Grails просто выводил DDL для обновлений уже созданной схемы, а не DDL для ее создания с нуля.
Я думаю, что это должно быть возможно, так как Grails действительно имеет возможность обновлять схемы, если вы определенно dbCreate = "update"
в вашем источнике данных.
Но я просто хочу, чтобы grails выплевывал то, что он выполнял, а не делал это на самом деле, поэтому я могу сам выполнить его с помощью инструмента SQL контролируемым образом.
1 ответ
Как отметил @GreyBeardedGeek в комментарии, плагин переноса базы данных(который теперь включен по умолчанию) может генерировать "разность схем", которую вы ищете, и он значительно больше, чем ванильdbCreate = "update"
делает, так как собственное обновление базы данных Grails зависит только от того, что предоставляет Hibernate, и оноочень консервативно в своих обновлениях.
В частности, часть плагина Database Migration, которую вы ищете, этоdbm-update-sql
скрипт, который даст вам SQL, который он будет запускать для обновления БД до текущей версии схемы.
В общем, я бы настоятельно рекомендовал использовать такой инструмент, как плагин Database Migration, так как он связывает вашу схему БД с кодом вашего приложения, и вы можете легко создавать версии вместе, а также включает в себя множество инструментов, так что запуск обновлений намного меньше больно, и позволяет откатов и пользовательских сценариев массажировать вещи по мере необходимости.