Хранение БД-Агностической Схемы - PullRequest
4 голосов
/ 27 января 2009

У нас есть набор приложений, которые работают с несколькими ядрами баз данных, включая Sql Server и Access. Схемы для каждой из них поддерживаются отдельно и не хранятся в текстовой форме, что затрудняет управление исходным кодом. Мы заинтересованы в переходе к системе, в которой схема хранится в некотором текстовом формате (например, XML или YAML) с описаниями типов данных поля, отношениями внешнего ключа и т. Д.

Когда все сказано и сделано, мы хотим иметь единый текстовый файл в системе управления версиями, который можно использовать для создания чистой базы данных, которая работает как с SQL Server, по крайней мере, с Access (и, предпочтительно, способна работать с Oracle, DB2 и другие движки).

Я уверен, что есть инструменты или библиотеки, которые могут помочь нам хотя бы частично в этом. Например, я нашел Altova MapForce , который, похоже, может сработать, но мне интересно услышать о любых альтернативных инструментах или библиотеках или даже совершенно разных решениях для тех, кто находится в том же положении.

Примечание. Приложения написаны на C ++, а решения ORM недоступны на C ++, и их интеграция в наши устаревшие продукты займет слишком много времени.

Ответы [ 3 ]

1 голос
/ 27 января 2009

Консенсус, когда я задал аналогичный (хотя и более наивный) вопрос , по-видимому, заключается в использовании необработанного SQL и управлении зависимостями RDMS с помощью дополнительного уровня. Удачи.

1 голос
/ 27 января 2009

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

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

0 голосов
/ 14 декабря 2011

Инструмент, который вы ищете - liquibase . Нет поддержки Access, хотя ...

...