SQL-скрипты в Subversion - PullRequest
       65

SQL-скрипты в Subversion

8 голосов
/ 05 июня 2009

Я инженер по сборке и отвечаю за макет нашего исходного кода. Нам нужно сохранить версию всех объектов базы данных, а также сгруппировать изменения вместе со сценариями отката для запуска в производство. У нас есть среды разработки, контроля качества и производства, и в каждой есть разные версии объектов базы данных. Одна из проблем, с которыми мы сталкиваемся, связана с созданием таблиц и изменением. Разработчики будут проверять изменения, но для воссоздания базы данных нам нужно создать. Любые идеи будут оценены.

Ответы [ 3 ]

3 голосов
/ 05 июня 2009

Я большой поклонник http://www.liquibase.org/. Это позволяет вам отслеживать версии вашей базы данных, включая возможность "обновлять" и "откатывать" вашу схему / данные.

У них хороший синтаксис XML, поддерживающий обычные рефакторинги, в том числе подробно описанные в http://databaserefactoring.com/

У них также есть плагины Eclipse, помогающие создавать сценарии изменений, и задачи Ant для интеграции в вашу сборку.

Моя единственная жалоба заключается в том, что она основана на Java, и мне нравится устанавливать java на свой сервер сборки для проектов .NET. В таком случае я слышал хорошие вещи о http://code.google.com/p/migratordotnet/.

1 голос
/ 05 июня 2009

Вы должны посмотреть, как фреймворки, такие как рельсы, справляются с миграциями

http://dizzy.co.uk/ruby_on_rails/cheatsheets/rails-migrations

0 голосов
/ 06 июня 2009

Я могу порекомендовать вам такой сценарий:

  1. Dbunit для заполнения данных (например, словари, основные данные и другая важная информация базы данных)
  2. Liquibase из dbdeploy для рефакторинга базы данных. На мой взгляд, liquibase - более ориентированный на рефакторинг инструмент, а dbdeploy - более ориентированный на процесс (т. Е. Вам придется делать больше руками, но это упрощает процесс разработки, тестирования и поддержки производства). 1016 *

Если ваша компания использует ORM, вы можете создать схему базы данных "diff" на лету на основе механизма ORM. Кроме того, если ваш продукт работает с разными базами данных, у вас будет дополнительный уровень сложности. К сожалению, ни dbdeploy , ни liquiase не удовлетворили меня разработкой / рефакторингом multy-базы данных.

...