The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск Flyway 4.1.0, инструмента для контроля версий БД, opennews (??), 15-Фев-17, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


23. "Выпуск Flyway 4.1.0, инструмента для контроля версий БД"  +/
Сообщение от Аноним (-), 15-Фев-17, 16:32 
> 1. именование файлов как версию миграции

как по мне - очень спорно

> 3. гибкая конфигурация

в чем это проявляется?

> 1. отсутствие транзакций. например, если пишите запрос в несколько строк, и одна
> из них ушла в fail, то откатить исполнившиеся строки нельзя.

не все БД умеют транзакционность DDL (тот же mysql - не умеет)

> 2. Никакая работа с несколькими схемами. Вполне логично было бы разделить миграции
> для разных схем на разные директории, а работать с ними через
> одну программу.

а как же гибкая конфигурация?

> 3. отсутствие downgrade

насколько реально это нужно и как часто востребовано?

Ответить | Правка | Наверх | Cообщить модератору

24. "Выпуск Flyway 4.1.0, инструмента для контроля версий БД"  +/
Сообщение от Шкурка_от_головки (ok), 15-Фев-17, 17:26 
> как по мне - очень спорно

Помимо версии указывается еще описание миграции. По мне, так это лучше, чем тyпой таймстамп.

> в чем это проявляется?

Различные префиксы, суффиксы, разделители для именования файлов и т.д. Подробности в комментариях файла конфигурации.

> не все БД умеют транзакционность DDL (тот же mysql - не умеет)

Если программа берет на себя версионность БД, то как-то на уровне ПО можно это реализовать.

> а как же гибкая конфигурация?

Да, не все в ней гладко

> насколько реально это нужно и как часто востребовано?

Ну, это уже у каждого по-разному. Downgrade удобно использовать для отмены миграции, что приводит, соответственно, к уменьшению количества upgrade'ов.

Ответить | Правка | Наверх | Cообщить модератору

25. "Выпуск Flyway 4.1.0, инструмента для контроля версий БД"  +/
Сообщение от Аноним (-), 15-Фев-17, 17:32 
>> как по мне - очень спорно
> Помимо версии указывается еще описание миграции. По мне, так это лучше, чем
> тyпой таймстамп.

Чем это лучше чем например тyпой таймстамп (для сортировки) и краткое описание миграции? ПОтенциальную проблему с версией я уже выше описал - как по мне это достаточно частый use-case

>> в чем это проявляется?
> Различные префиксы, суффиксы, разделители для именования файлов и т.д. Подробности в комментариях
> файла конфигурации.

хотелось бы услышать про фичи, которые реально нужны и востребованы.

>> не все БД умеют транзакционность DDL (тот же mysql - не умеет)
> Если программа берет на себя версионность БД, то как-то на уровне ПО
> можно это реализовать.

каким способом в данном случае? возможности rollback нет (не уверен, что эта задача в случае pure SQL вообще решается, даже для одной БД). Как по мне - в данном случае претензия не по адресу.

>> насколько реально это нужно и как часто востребовано?
> Ну, это уже у каждого по-разному. Downgrade удобно использовать для отмены миграции,
> что приводит, соответственно, к уменьшению количества upgrade'ов.

Не понимаю. Допустим я добавил миграцию и через пару месяцев решил ее зачем-то откатить. Да, было бы удобно, если бы я просто написал в файле миграции что-то типа "purge migration VXX_****" вместо пачки "ALTER TABLE....", но как это уменьшит количество upgrade'ов? Все равно ведь по сути нужно сформировать эту пачку и провести ее...

Ответить | Правка | Наверх | Cообщить модератору

29. "Выпуск Flyway 4.1.0, инструмента для контроля версий БД"  +/
Сообщение от Шкурка_от_головки (ok), 15-Фев-17, 22:33 
> Чем это лучше чем например тyпой таймстамп (для сортировки) и краткое описание миграции? ПОтенциальную проблему с версией я уже выше описал - как по мне это достаточно частый use-case

Да, при наличии двух и более файлов с одной версией он ругается. Но как часто Вы меняете базу, что не можете угнаться за версиями? Поэтому я и говорю о downgrad'е, что если необходимо внести изменения в миграцию, можно было ее downgrade'нуть изменить и upgrade'нуть измененную. А так получается, что при дальнейших изменениях, которые можно было бы объединить в один файл, приходится плодить маленькие миграции, тем самым увеличивая номер версии типи V1_2_45.

> каким способом в данном случае? возможности rollback нет (не уверен, что эта задача в случае pure SQL вообще решается, даже для одной БД). Как по мне - в данном случае претензия не по адресу.

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

> Не понимаю. Допустим я добавил...

Описал в начале, что я имел в виду говоря об уменьшении upgrade'ов.

Ответить | Правка | Наверх | Cообщить модератору

30. "Выпуск Flyway 4.1.0, инструмента для контроля версий БД"  +/
Сообщение от Аноним (-), 15-Фев-17, 23:09 
>Да, при наличии двух и более файлов с одной версией он ругается. Но как часто Вы меняете базу, что не можете угнаться за версиями?

в активной фазе разработки проекта база меняется очень часто. потом пилятся фичи, зачастую параллельно, в итоге - будут конфликты. У нас в основном проекте наваяли самописную подсистему управления миграций, там сделали тупо цифровой номер файла - постоянно конфликты лезут. Но там я хоть при комите вижу этот конфликт и поднимаю версию своего файла до нужной, иначе комит просто не пройдет. В случае же с flyway получается вполне можно закомитить 2 файла с одной версией (но разными именами файлов, т.е. комит пройдет) и проблемы вылезут уже позже... не очень хорошо. можно конечно хуками обвешаться, но это всё равно костыль.


> Поэтому я и говорю о downgrad'е, что если необходимо внести изменения в миграцию, можно было ее downgrade'нуть изменить и upgrade'нуть измененную.

и как ты предлагаешь в таком случае отслеживать изменения миграций? хеш-суммы файлов в базе хранить рядом с версией (и не одну а 3, на случай коллизий)? не, уж лучше так - каждый набор изменений в отдельном файле со своим набором sql операторов. Иначе потом придется по всем миграциям бегать смотреть, кто тебе дев-базу сломал (точнее, лезть в историю VCS), в текущем же варианте - посмотреть нужно будет только последние несколько файлов никуда не переключаясь.

> А так получается, что при дальнейших изменениях, которые можно было бы объединить в один файл, приходится плодить маленькие миграции, тем самым увеличивая номер версии типи V1_2_45.

поэтому я и говорю - решение с номером версии жутко спорное. как по мне гораздо лучше таймстамп и краткое описание в имени файла. количество файлов миграций по большому счету ни на что не влияет.

> Считаю, что если программа взялась работать с версионностью БД, то нужно это делать намного продуманней. С pure SQL, мне кажется, решается, если ограничить запросы только касающиеся структуры БД, и хранением для каждой миграции состояние структуры изменяемых таблиц.

Смотри, нужно для каждого запроса писать "обратный" запрос, который вернет базу в предыдущее состояние. Автоматически такие запросы написать ИМХО невозможно. А пользователи библиотеки такое делать ручками никогда сами не будут. Это решается только своим псевдо-языком миграций, но возникает проблема поддержки всех фич СУБД. Как я понимаю, тут поддерживаются разные СУБД, и нужно следить за изменениями в каждой... Так себе задачка.

И куда девать запросы на изменения данных? Вот нужно заказчику по хитрому условию обновить какое-то поле в большой таблице. Все, эту миграцию мы уже откатить не сможем, т.к. хранить в миграции состояние всех дев/превью/прод баз никто в здравом уме не будет. И разбираться потом, какие миграции откатываются а какие нет - тоже лишний гемор. Гораздо проще добавить новую миграцию.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру