2008-08-22 4 views
39

Я работаю над проектом с открытым исходным кодом, который использует SQL Server 2005 в качестве хранилища данных. Нам нужен инструмент сравнения DB, чтобы генерировать скрипты diff, чтобы иметь возможность обновлять БД из одной версии в другую.Есть ли инструмент сравнения баз данных SQL Server с открытым исходным кодом?

Есть ли открытый SQL-инструмент с открытым исходным кодом или бесплатный SQL-сервер, создающий сценарий конвертации?

ответ

15

Я думаю, что Open DBiff отлично справляется. Это просто, и я работаю с SQL Server 2005/2008.

Но только сгенерируйте сценарий изменений. Не больше, не меньше.

5

Это не с открытым исходным кодом, но бесплатно (как в пиве): Sql Effects Accord (aka Clarity) Community Edition

+0

Просто попробовал это ... он не генерирует скрипты diff, поэтому не так полезно. – 2011-01-18 10:44:30

+0

Регистрация на странице для инструмента anno 2007 также не работает ... – 2014-02-26 19:08:33

0

Хм, ни что я не знаю. Вы всегда можете получить определения как SQL, а затем запустить на них инструмент diff, но это немного боль в задней части.

Вероятно, лучшим решением для этого является использование своего рода «Миграции» инструмент, так что вы можете хранить ваши определения базы данных вместе с кодом, и версия их и т.д.

0

Update

На Sourceforge I найдено Whiz SQL Structure Compare с этим описанием: Whiz - это утилита для сброса базы данных, которая будет полезна для поиска разницы между двумя базами данных MS-SQL Server. Он также может генерировать SQL-скрипт для обновления изменений из одной базы данных в другую базу данных.

Однако, я был неудачен в получении его на работу до сих пор ...

12

На CodePlex я заметил вчера DBDiff (http://www.codeplex.com/OpenDBiff), что вы могли бы попробовать. Поддерживает Sql2005 и 2008, я не пробовал.

+1

Это не похоже на работу с Win7 64bit. – Marc 2010-03-05 20:12:12

+0

Это не сработало для меня на Win7 64bit, но мне удалось создать его из исходного кода (добавлены некоторые отсутствующие DLL из двоичного дистрибутива и System.Data.SQLite.DLL из копии SubSonic). Мне потребовалось около 5 минут. Попробуйте - кажется, это дает хорошие результаты (генерирует скрипт синхронизации). Попробуйте протестировать скрипты, но инструмент выглядит очень многообещающим. – Muxa 2010-07-24 08:50:36

+0

Для информации, это теперь работает с 64-битным. Просто попробовал, очень хороший инструмент. Не так хорошо, как AdeptSQL Diff, но это бесплатно! – 2011-01-18 10:43:45

6

Я бы рекомендовал потратить немного денег и получить инструмент Red Gate's SQL Compare, который отлично справляется с работой и может даже сравнивать базы данных с проектами базы данных Visual Studio для генерации сценариев обновления. Он быстрый и простой в использовании и хорошо работает. Сценарии обновления также достойного качества.

Это не так дорого. Наверное, дешевле, чем ваше время. Просто подумайте о том, насколько ваша почасовая ставка и сколько часов потребуется, чтобы исследовать инструмент с открытым исходным кодом и заставить его работать (и сколько вы уже потратили), а затем умножить их вместе. Вот насколько вам нужен «бесплатный» инструмент, который часто значительно больше, чем коммерческий инструмент.

+9

Этот аргумент может использоваться для оправдания покупки ВСЕГО, от стульев Aeron до 40-дюймовых экранов для людей, которые стоят за вами и массаж вашей спины. Для малого бизнеса, не имеющего никаких продаж, который должен приобрести еще много предметов, $ 400 для SQL Compare - это просто пустая трата средств. Сравните это с Typemock Isolator, который стоит 90 долларов США «Для сольных разработчиков, которые работают дома», Beyond Compare, стоимость которого стоит 30 долларов, visualSVN whinc стоит 50 долларов США - вы видите мою точку зрения (все числа округлены) – Avi 2009-06-29 07:54:51

3

Aloha

Вы могли бы хотеть попробовать SqlDbDiff. Он может генерировать сценарии изменений. Бесплатная версия делает достаточно хорошую работу.

0

У нас есть SQL Delta и SQL Compare. У каждого есть свои сильные стороны, но у каждого также есть недостатки, которые делают их довольно больными.

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

SQL Compare поймает триггеры, но они встроены в списки таблиц. В большой базе данных это означает прохождение каждой таблицы и ее отсечение. Что-то инструмент должен был изолировать для нас.Опять же, довольно дорогое время.

4

AdeptSQL Diff и DataDiff - замечательные продукты, намного более дешевые, чем RedGate и гораздо более упрощенный интерфейс, и мне еще предстоит выполнить сценарий, с которым он не справится.

1

Попробуйте xSQL Bundle (сравнение данных xSQL и сравнение объектов xSQL)? Наше место используется только для разностей БД, без синхронизации, поэтому не могу сказать, что для синхронизации, но diff и отчеты неплохие.

Кроме того, OpenDBDiff имеет закрутить, не уверен, что лучше - http://code.google.com/p/sql-dbdiff/

Каждый знают, если любой из свободно/с открытым исходным кодом DB дифф инструменты, упомянутым здесь предлагает поддерживающий сценарии/интерфейс командной строки для автоматизации и переформатирования и синхронизации ?

Я изучил инструменты xSQL, они предлагают доступ к командной строке, но, к сожалению, никакая сценаризуемая команда не экспортирует результаты сравнения в файл отчета (отчета).

1

Хотя это не совсем то, что вы хотите, я нашел это для Postgres:

http://mbk.projects.postgresql.org/

Это не создает различий для применения, а позволяет объединить полный дамп новой версии таблицы с предыдущей версией.

0

Ее немного поздно, но я просто relased реальный простой проект кода сплетение:

http://dbcompare.codeplex.com

Enter (или построить) две строки подключения, и он будет сравнивать все таблицы, представления и хранимые процедуры ,