проверка классов домена Grails по базе данных - PullRequest
0 голосов
/ 14 июня 2011

Как лучше всего проверить, что классы домена grails синхронизированы с базой данных?Это устаревшая база данных, и я не могу собрать ее из классов домена.Интересная идея здесь , которая подразумевает выборку по одной строке каждого из доменов.Однако, это не похоже на законченное решение, главным образом потому, что тестовая база данных, по которой я проверяю, может быть не настолько богатой, чтобы иметь данные во всех таблицах.

Заранее благодарим за то, что нашли время прочитать / ответить.

1 Ответ

1 голос
/ 14 июня 2011

Это хороший подход, и он должен работать даже для пустых таблиц - если таблица пуста, у вас нет устаревших данных, о которых стоит беспокоиться, не так ли? Или, если вы хотите проверить ограничения Grails на совместимость с ограничениями БД, создайте новый экземпляр класса и попробуйте save() передать его в транзакции - и всегда откатывать транзакцию обратно.

Если база данных небольшая, я бы даже пошел и удалил max:1 из list() - чтобы проверить каждую запись, потому что только некоторые из записей могут нарушать ограничения.

Я бы также заменил println "${it}" на assert it.validate().

Последняя оптимизация, я бы ограничил проверенные классы только теми, которые, как я знаю, могут нарушать некоторые ограничения. Это сэкономит значительную часть такого теста - и тест займет много времени, вы знаете - чтение всей базы данных с накладными расходами GORM.

...