Как стать автором
Обновить

Комментарии 37

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

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

Microsoft SQL Server Data Tools для этих целей не достаточно?

Вполне достаточно, но рассматривались сторонние утилиты для быстрой настройки.
Про 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.

Пока выявлены следующие пути по синхронизации баз разных СУБД:
1) http://www.dbbalance.com/database_comparison.htm
2) для перехода со скуля на постгрес: https://severalnines.com/blog/migrating-mssql-postgresql-what-you-should-know
3) используя ORM (например, EF) перенести схему и данные с одной СУБД на другую СУБД

В личных целях использовал средство 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
И т д

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

Подумал и решил расписать ответ.
Смотрите, всё те же компании ApexSQL, RedGate, Devart предлагают свои решения для автоматизации CI/CD, которые они называют DevOps решениями:


  1. red-gate.com/solutions/overview
  2. apexsql.com/sql-tools-devops.aspx
  3. devart.com/dbforge/sql/database-devops/
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации