Comments 37
Спасибо за обозр. А касательно скорости работы? Багам? Например ApexSQL я бы сказал что сильно бажливый.

По тем сценариям, что удалось прогнать, багов не было выявлено ни у одной тулзы.
Однако, не могу сказать, что их нет вообще.
База сама по себе содержала таблицы, ограничения в виде PK, FK, уникальных индексов, представления, функции (табличные и скалярные) и хранимые процедуры.
С переносом, изменением и т д и т п в синхронизации схем и синхронизации данных все было ок.

Вполне достаточно, но рассматривались сторонние утилиты для быстрой настройки.
Про SSDT также сказано вначале (но не расписывалось сильно): Visual Studio Comparer+SSIS (сюда и SSDT входит)

Поясните, пожалуйста: что важное умеют рассмотренные утилиты, чего не делает бесплатный SSDT?
Пользуюсь им, навскидку всё то же самое. Хочу понять, что я упускаю.

Меньше нужно писать кода, кликать мышкой и более быстро получить результат.
А также значительно малый порог вхождения.
SSDT сам пользовался пока баз и экземпляров скулей не перевалило за сотни.
Тогда даже каждый лишний клик и каждая лишняя секунда значительно увеличивает время работы.

Что-то не увидел раздела с откатом изменений? Или под «откатом» имелось в виду «запуск скрипта миграции внутри транзакции»?

В данном случает внутри транзакции
Код тоже готовится в транзакции
Также код можно поместить и в другую транзакцию или придумать иной способ отката, зная что именно меняется по коду

Спасибо за труд по сравнению. Используем RedGate, редко в проектах dbForge. Давно сравнивали и Apex, но на тот момент не показался лучшим. Большая часть — это автоматические скрипты для сравнения структур, которые синхронизируют, что нужно. Ценники кусачие и растут, но приходится покупать, так реально экономят время и деньги, а проекты не в России.

Но ведь решения от RedGate очень дорогие. Чем не подошел Apex? И чем не подошел DbForge?
Я использую в основном DbForge и иногда Apex.

Да, RedGate не дёшев, но обычно выбивали скидки под количество лицензий с несколькими программами, когда цена значительно меньше. Ещё используем Prompt (подсказчик), SQL Monitor (мониторинг), Search. Возможно, к RedGate торрены давно находились просто, поэтому у нас ещё исторически их пробовал народ. ) Учту Ваш вывод в статье, проверит кто-нибудь инструменты на сегодня. VisualStudio — тоже улучшилась в плане БД, некоторые любят руками сравнивать в нём. От Apex-а обычно ApexLog — аудитор лога пользуем. Так что со всеми участниками знакомы.
Подскажите, пожалуйста, не рассматривали «примитивные» средства ведения кода и структуры баз данных, когда все объекты БД выгружаются в текстовые файлы в фиксированной древовидной структуре?
Из плюсов: это условно бесплатно, удобно сравнивать окружения, можно использовать традиционные системы версионного контроля со всеми вытекающими для командной работы.
Из минусов: все миграции необходимо описывать руками в скриптах, что трудоёмко, но даёт больше контроля над происходящим.

Да, давно как-то так и делал
В принципе такой же подход но улучшенный есть и в VS, когда создаете проект БД.
Следующее развитие- это SSIS (SSDT).
И потом уже эти и подобные тулы.

Пользуюсь своим MssqlMerge (сорри за рекламу).
Я сам не дибигай, и мне как правило нужно обозреть изменения или проверить менялось ли что-то конкретное, сравнить, и в редких случаях точечно смержить или сгенеить скрипт, продукт пока развивается больше исходя из собственных нужд.
Выложить в гитхаб — нет, не могу. Пока у меня еще есть к нему небольшой корыстный интерес :). Я думаю что упомянутые в статье компании тоже не стали бы.

И да — хотел, но не смог отредактировать мой предыдущий камент — спасибо большое за обзор!

Ок, но хотя бы можете выложить ссылку на описание продукта?
Если такого нет, то в ближайшем будущем плиз дайте.
P.S.: Рад всегда делиться и помогать)

Ссылку на описание — конечно! (сперва подумал что ссылка интересна только после выкладывания на гитхаб)
www.db-merge-tools.net/mssqlmerge
Есть еще видео-презентация на 7 минут — youtu.be/JClUOQ1J9HE, старенькая правда, но принципиально с тех пор не сильно что поменялось, добавилось больше поддерживаемых типов объектов и стало чуток красивей.

Благодарю за инфу, а на чем написана тулза и какие библиотеки использует?
Какие технические требования к ПО?

На c#/WPF, библиотеки — DiffPlex для сравнения текста и Microsoft.SqlServer.Types для работы с некоторыми типами данных. В платной версии есть эксель экспорт — он к сожалению сейчас требует наличия самого экселя на машине, наследие более ранней утилиты для Аксесса которая предполагала наличие полного офиса.
Тех требования — Windows XP и выше, наличие .net framework 4 client profile или выше, по железу каких либо специфических требований нет. Для активации триала желателен интернет (но не обязателен), для бесплатной версии или при наличии ключа — не требуется.

Благодарю за ответ.
А есть ли что-то подобное для PostgreSQL, а также для сравнения схем и данных между MS SQL Server и PostgreSQL?

Для PostgreSQL — нет, пока только желание в очень далеком будущем, я с ним еще не работал.
MS SQL Server и PostgreSQL — тоже нет, сравнивать разные разные СУБД пока даже не планирую вообще, слишком много других хотелок по развитию того что уже есть.

Компаратор для разных СУБД очень актуален в силу перехода с одной СУБД на другую СУБД.
Например, в РФ и ее соседей тренд переходить с платной СУБД на СУБД PostgreSQL.

В личных целях использовал средство Full Convert для переноса с MS SQL в PostgreSQL. Возможно, Вам пригодится эта информация.

У нас, на небольшой бд в примерно 5000 объектов, продукты apex ну очень медленно работают. Dbforge справляется гораздо бодрее.
Насколько мне известно, dbforge имеет очень лояльную политику к индивидуальным разработчикам из России

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

Как правило, все в гит скрипты кладут, и при деплое накатывают автоматом. И имеют все бд одинаковые на всех инстах, с поправкой на версию. Ну типа вон статья blog.codinghorror.com/get-your-database-under-version-control — больше 10 лет уже ей, я думал все уже так делают. Зачем руками-то?

Здесь имелось в виду сравнение двух баз, а не миграция изменений.
Контроль версий-это другое, а именно история изменений одной базы.

А как вообще получается что они разные? Они же по построению либо идентичные, либо отличаются на несколько скриптов миграции, которые можно посмотреть в гите.

Разными они могут быть по нескольким причинам. Например:
1) совершенно разные БД и нужно перенести только часть объектов с одной БД в другую
2) БД действительно должны быть идентичны, но по каким-то причинам одна из них не привязана к единому репозиторию
3) во время эксплуатации в РСУБД на одном из экземпляров БД появились странные данные и нужно проанализировать чем данные там отличаются от остальных
4) какие данные не попали с центрального сервера на подчиненный и наоборот
5) аналогично и по схемам в п.3-4
И т д

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

Only those users with full accounts are able to leave comments. Log in, please.