У нас есть приложение, в котором информация метаданных хранится в базе данных (некоторые таблицы с отношениями между ними).Метаданные можно редактировать через веб-приложение или напрямую манипулируя значениями в базе данных SQL Server.
Проблема : метаданные изменяются и должны быть объединены между различными средами (тестирование, подготовка, производство и т. Д.).Существуют инструменты (например, RedGate), которые помогают, но для сравнения баз данных, если используются автоматически сгенерированные идентификаторы, все еще достаточно много работы (как сейчас в нашей БД, и да, один из способов - использовать естественные ключи, чтобы упростить сравнение).
Однако наши метаданные могут храниться не обязательно в базе данных SQL - они могут храниться в виде документов в базах данных NOSQL (MongoDB, CouchDB, RavenDB) или даже в простых базах данных XML (может быть, Berkeley DB XML?).Сохранение в виде XML-файла, по-видимому, будет работать (так как проще сравнивать и объединять файлы, а не базы данных), но может не быть хорошим вариантом, поскольку требуются некоторые механизмы параллелизма, некоторая степень поддержки транзакций.Нам не нужна репликация на другие серверы, нет необходимости в высокой доступности и т. Д.
Требования для хранения данных:
- какой-то ACID
- Должен работать в Windows
- Простое сравнение (двунаправленная синхронизация)
- (необязательно) GUI для просмотра содержимого базы данных
- (необязательно) экспорт в файл (JSON, XML))
Какие есть варианты?