Мы используем MS SQL Server и C #. Наша база данных находится под контролем источника, и я расскажу вам некоторые детали нашей реализации. Мы реализовали две операции:
Экспорт базы данных в текстовые файлы. Файлы схемы базы данных:
tables.sql
relationships.sql
views.sql
...
и файлы содержимого таблицы:
Данные / table1.txt
Данные / table2.txt
...
Легко просматривать изменения базы данных с помощью журналов контроля версий, поскольку все эти файлы имеют простой текстовый формат.
Реализация основана на классах из пространства имен Microsoft.SqlServer.Management.Smo.
Импорт базы данных из этого простого текстового файла. Реализация проста - просто выполнить операторы sql из * .sql файлов, а затем выполнить несколько вставок.
Итак, у нас есть два bat-файла: create-test-databse.bat и export-test-database.bat. Когда разработчику нужна новая тестовая база данных, он просто запускает bat-файл и ждет минуту.
Каждый функциональный тест, которому нужна база данных, создает новую базу данных, использует ее, а затем убивает ее. Но я должен сказать, что это не очень быстрая операция. (
Итак, какие инструменты ВЫ используете, чтобы поставить свою базу данных под контроль исходного кода?
Я имею в виду, как вы реализуете операции «создание тестовой базы данных» и «экспорт тестовой базы данных», например?