EQSP 11/20: Автоматизация изменений в базе данных | Liquibase [software quality crash course]

  Рет қаралды 3,777

Yegor Bugayenko

Yegor Bugayenko

Күн бұрын

Пікірлер: 27
@aleksfrolov9250
@aleksfrolov9250 2 жыл бұрын
я разработчик простой, вижу новый видос Егора - ставлю лайк)
@nikitazinoviev1724
@nikitazinoviev1724 10 ай бұрын
Насчет того, зачем нужен индекс, созданный в файле *004*.xml (1:16:26) тут может помочь git, если посмотреть на git annotate на строку, содержащую CREATE INDEX, то можно найти какой код менялся одновременно с добавлением этого индекса и понять логику. Так что может быть, комментарий не так уж обязателен или по крайней мере, ситуация с его отсутствием не безнадежная.
@kali_256
@kali_256 2 жыл бұрын
Слышал от вас, Егор, что в начале пути разрабатывали базы данных. Круто, что есть такой контент на ютюбе. Ждём всей командой чёрно-белые айти)
@yegor256
@yegor256 2 жыл бұрын
Начал когда-то вот с этого: www.yegor256.com/pdf/1998/KRDB98-article.pdf
@kali_256
@kali_256 2 жыл бұрын
@@yegor256 это очень круто, прям впечатлен, серьёзно). а я начал с того, что отец привёз на новый год 486, в классе 4, много лет назад.. Жил в деревне, где компьютер был только у меня и в школе. Если бы рядом был человек, который показал ассемблер с си, а не дум и вольфенштейн с варкрафт, не потерял бы года на майонез). Огромная благодарнось вам, Егор, что не забываете подрастающее поколение) вот кроме Пайтона подучу раст с джавой и приду к вам с просьбой о сотрудничестве.
@yegor256
@yegor256 2 жыл бұрын
@@kali_256 буду ждать :)
@titaniumhocker
@titaniumhocker 2 жыл бұрын
Может я чего-то не понимаю, но мне кажется, что миграции бд это не такой сложный вопрос чтоб так его раздувать. Я работаю в основном на питоне и там alembic решает для меня проблему миграций уже давно и довольно успешно. Файлы миграций лежат в репе рядом с исходным кодом, на каждый коммит или PR миграции прогоняются в CI. В случае если разные разработчики сделали разные миграции в своих ветках, то CI попросту сломается. UPD: Сорр, не заметил, что это лекция для универа. В таком контексте лекция норм, мне в колледже вообще втирали, что все в проде используют MS SQL, а изображения всегда нужно хранить в СУБД как бинари, и ни в коем случае не складывать их на диск или, еще хуже, в S3. Если бы у меня был такой препод, может я бы и ходил туда почаще.
@VictorSudakovTomsk
@VictorSudakovTomsk 2 жыл бұрын
Как философская и идеологическая - лекция хороша, спасибо. На практике при сложных базах вряд ли получится такого идеала достигнуть, хотя стремиться к полному управлению проектом из VCS - нужно.
@yegor256
@yegor256 Жыл бұрын
Да, Вы правы, на практике все обычно получается не так красиво.
@codingfox
@codingfox Жыл бұрын
Вначале подумал, что Егор заново изобретает миграции, но потом понял - это учебная лекция 😁
@ДмитрийЛавров-ж7м
@ДмитрийЛавров-ж7м Жыл бұрын
После просмотра видео остался вопрос, что делать с инсертом тестовых данных в продовую таблицу. За видео спасибо, очень полезно и понятно
@borinhood
@borinhood 2 жыл бұрын
Для больших и сложных баз такой метод не подойдёт. Не получится каждый раз создавать всю базу с нуля. Вероятно, система должна быть посложнее. Чтобы скрипты позволяли не только монотонно инкрементить состояние базы, но и назад откатывать. Путь даже не очень далеко. Хотя бы до той точки, которая в продакшене.
@kali_256
@kali_256 2 жыл бұрын
И, если будет возможность, в черно-белом айти, хотелось бы послушать про мёрдж, бранч, гит и альтернативы ему, типо нотебаг, особенно во времена, когда гитхабный опер сорс под Майкрософт становится постепенно цензурируемым большим братом)
@codingfox
@codingfox Жыл бұрын
Когда будут новые выпуски Черно-белого айти? Ждём 🙂
@yegor256
@yegor256 Жыл бұрын
Я тоже жду!
@dieff_automation
@dieff_automation 2 жыл бұрын
Егор сниимите пожалуйста видео почему вы уехали из США
@dieff_automation
@dieff_automation 2 жыл бұрын
Мы не понимаем просто щас туда народ нелегалами идёт а вы самостоятельно уехали в голове не укладывается
@yegor256
@yegor256 2 жыл бұрын
потому что там качество жизни ниже, еда невкусная, а женщины некрасивые :)
@dieff_automation
@dieff_automation 2 жыл бұрын
@@yegor256 как же ниже когда они там вон в каких домах живут и причём это обычные люди не программисты не какие
@yegor256
@yegor256 2 жыл бұрын
@@dieff_automation изучите: realty.rbc.ru/news/5ddad8359a79476313d8d084
@andrey7829
@andrey7829 2 жыл бұрын
Я только не понял как же отлаживать все запросы, если даже тестовой базы нет?
@yegor256
@yegor256 Жыл бұрын
Тестовая база нужна, но только на время тестов
@user-QesOrwuMqN
@user-QesOrwuMqN 2 жыл бұрын
Так а почему это не разбирается на существующих инструментах для миграций? зачем писать велосипед, который оторван от текущих практик по этому вопросу. Я бы понял если бы использовался устаревшая тулза, но которая раньше использовалась …
@kselnaag2482
@kselnaag2482 2 жыл бұрын
Дропать таблицы это, конечно, весело, особенно прямо на проде, но с данными то что делать ? Я бы их куда то сохранил, передропал всё, изменил структуру и залил обратно, но как ?
@dimkafn
@dimkafn 2 жыл бұрын
Ну по сути ты можешь сделать дамп бд с ддл и инсертами (условно через pg_dump), потом залить измененный ддл и инсерты меняющие данные под этот ддл (ну т.е. фактически сделать дифф старого ддл и нового + залить инсерты с старого дампа). Т.е. по сути это можно даже в ликвибейз скл скрипты запихнуть.
@AlekseyV82
@AlekseyV82 2 жыл бұрын
Лучше наоборот. Обновить структуру (добавить новые таблицы, столбцы), записать данные в новые столбцы, потом уже дропать старые.
@nikitazinoviev1724
@nikitazinoviev1724 10 ай бұрын
А нет смысла squash'ить схему базы данных хотя бы раз в год? Скажем, раз в major release. Я понимаю, что Liquibase хранит md5 и так просто не даст это сделать в продакшн. Но получается, как будто мы код храним в git не в виде целых файлов, а в виде diff'ов и через год разработки неудобно, что нет места, где можно посмотреть полную или почти полную схему. Плюс, возможно, запуск тестов будет существенно замедлен, если перед ним нужно будет применить все changesets к БД с начала истории проекта. В идеале, мы могли бы хранить схему и миграции, а по изменениям схемы в git liquibase строил бы ALTER TABLES.. Или хранить схему, плюс то, что отличает ее от предыдущей ревизии, чтобы liquibase накатывал изменения, двигаясь по истории в git.
How to treat Acne💉
00:31
ISSEI / いっせい
Рет қаралды 108 МЛН
Tuna 🍣 ​⁠@patrickzeinali ​⁠@ChefRush
00:48
albert_cancook
Рет қаралды 148 МЛН
Великовозрастный программист. Стоит ли идти в IT в 40 лет
8:17
Дилетант широкого профиля
Рет қаралды 18 М.
Про Kafka (основы)
49:23
Владимир Богдановский
Рет қаралды 424 М.
Oh no😱 EPIC Kissy Missy broke her teeth SITUATION by COOL TOOL
0:39
Everybody Was Afraid😨||But The Gorilla🦍Knows His Friend😊|| #shorts #youtubeshorts
1:00
𝐿𝓊𝒩𝒶_𝒪𝐹_𝐿𝑜𝒱𝑒
Рет қаралды 12 МЛН
Урыла😏 #кино #film #fypシ #minions
0:37
Faron
Рет қаралды 8 МЛН
Урыла😏 #кино #film #fypシ #minions
0:37
Faron
Рет қаралды 8 МЛН