2013-05-21 5 views
2

В настоящее время я работаю над проектом Grails, в котором есть статическая база данных с большим количеством данных. Я хотел бы протестировать мое приложение, используя производственные данные, но вместо того, чтобы клонировать производственную базу данных, я хотел бы настроить базу прокси-сервера в производственную базу данных.Как прокси создать базу данных с тестовой базой данных?

По существу, чтение базы данных будет проходить до производственной базы данных, в то время как запись остановится в базе данных прокси (предпочтительно в базе данных h2). Если строка была обновлена, которая поступает из производственной базы данных, строка будет сохранена в базе прокси-сервера и будет возвращена вместо строки production в последующих запросах.

Я хотел бы сделать все это прозрачным для приложения, насколько это возможно. В настоящее время я считаю, что мне нужно разблокировать реализацию Hibernate GORM и заставить ее поддерживать этот прецедент. Это было сделано раньше? Есть ли способ лучше?

ответ

1

Вилка спящего режима GORM Реализация не может быть хорошей идеей. Вы застряли в своей версии и должны каким-то образом обновить исходный плагин (например, исправление ошибок, новые реализации).

Может обычай TestMixin, что позволяет переопределить all registered domain classes с новыми реализациями save(), get(), find() и т.д. может быть вариант. Вы можете работать с metaClass, чтобы переопределить эти статические методы, и это будет срабатывать только на тестах с аннотированным микшированием.

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

+0

Это хорошая идея, но это ограничивает мое использование только автоматическим тестированием. Мне бы очень хотелось, чтобы это работало с run-app. –

+0

Вы имеете в виду, что вы хотите, чтобы это поведение как для разработчиков, так и для интеграции? –

+0

Первой целью было бы заставить эту работу работать над средой разработки (по крайней мере, там, где мои головы). Интеграционная среда представляет собой собственный набор проблем, поскольку база данных не может находиться в известном состоянии. –

Смежные вопросы