У нас много сред
trunk (интеграция разработчиков) -> devel (командное тестирование) -> qa (регрессионное тестирование) -> live (использование клиентов)
Каждая имеет свою собственную базу данных, которая работает с код в этой среде.
Часть содержимого базы данных - это метаданные, а часть - данные. Например, если вы создаете отчет, то столбцы, которые вы можете выбрать для создания отчета, являются метаданными, а отчеты, которые пользователь уже создал, являются данными. Метаданные перемещаются вверх по цепочке продвижения (вводятся в магистрали и идут разработки-> qa-> live) вместе с кодом по мере его тестирования. Однако данные не продвигаются. Более того, данные в определенной среде не должны стираться или повреждаться и продолжать работать после того, как эта среда была повышена до уровня.
Какие существуют хорошие стратегии для управления и, что не менее важно, для автоматизации такой установки?
Мы используем .NET / C # / SQL Server, но я думаю, что эта проблема носит общий характер и должна решаться повсеместно для любого зрелого приложения, над которым работает большое количество разработчиков и которое заботится о пользователях данных. генерировать на нем.