Использование Liquibase для управления схемой данных в Java приложении

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 ธ.ค. 2024
  • Вебинар для начинающих Java-разработчиков
    Ссылка на бесплатную карьерную консультацию от Geekbrains
    bit.ly/3e3mFGl
    В Hibernate есть очень удобная опция hbm2ddl.auto, которая позволяет автоматически создавать таблицы в базе данных при запуске приложения, но такой подход хорошо только на первый взгляд. На вебинаре мы разберем, как при помощи утилиты Liquibase можно легко организовать production ready управление структурой БД.
    Среда разработки IntelliJ Idea:
    www.jetbrains....
    Фреймворк Spring Boot:
    start.spring.io/
    Код приложения, которое будем использовать на вебинаре
    github.com/ush...
    Утилита Liquibase
    www.liquibase....
    docs.liquibase...
    Мои статьи про использование Liquibase
    habr.com/ru/po...
    habr.com/ru/po...

ความคิดเห็น • 49

  • @eron
    @eron 2 ปีที่แล้ว +5

    Лучшее обьяснение по Liquibase, данное видео помогло мне разобраться и настроить в пет проекте миграцию, Спасибо большое!

  • @VitMS1
    @VitMS1 3 ปีที่แล้ว +2

    Спасибо, в кач-ве ознакомления очень зашло. Большую часть на скорости 1.5 смотрел, а потом на 1.75 - ничего не упустил и время сэкономил :)

  • @zagboris
    @zagboris 4 ปีที่แล้ว +13

    32:14 - добавление зависимости в idea. Это тому, кто знает для чего Liquibase, но не знает как пользоваться

  • @Кирилл-з1п
    @Кирилл-з1п 7 หลายเดือนก่อน

    Спасибо большое, за хороший материал. Очень зашло. Посмотрю еще ваши трансляции.
    🎯🎯🎯

  • @ЕвгенийСавинов-з5р
    @ЕвгенийСавинов-з5р 4 ปีที่แล้ว +1

    И да, вы топ контент делайте по java, spring мне очень заходит, спасибо!

  • @dmytromoroz4451
    @dmytromoroz4451 3 ปีที่แล้ว +2

    Отличный материал. Все четко и понятно. Спасибо!

  • @egos_ua
    @egos_ua 3 ปีที่แล้ว +1

    я пока только на 12-й минуте, но лайк ставлю уже(что для меня необычное поведение). Нравится уровень подготовки. Надеюсь уровень такой будет до конца вебинара... смотрим-с.

  • @RadioRedFox
    @RadioRedFox 3 ปีที่แล้ว +1

    Спасибо тебе хороший человек!

  • @andrewkaa6162
    @andrewkaa6162 4 ปีที่แล้ว +1

    Обычно комментарии не оставляю, но это было действительно хорошее обучающее видео! Спасибо!

  • @gazizmalibekov2234
    @gazizmalibekov2234 3 ปีที่แล้ว

    Отличная подача материала, благодарю!

  • @PyratRomka
    @PyratRomka 2 ปีที่แล้ว +1

    Зачем changesets писать не на XML (YAML, JSON), а на SQL? На хабре же написали более простой метод: "Кроме того, если нам будет нужно откатить данный changeSet, Liquibase сумеет автоматически создать скрипт для удаления данной таблицы. Если бы мы использовали SQL скрипты, то нам пришлось бы вручную писать скрипт для отката изменений." Несостыковка

    • @TheUsharik
      @TheUsharik  2 ปีที่แล้ว

      Между вебинаром и статьёй на хабре прошло некоторое время. Нестыковки вполне возможны.

  • @wizzard211
    @wizzard211 2 ปีที่แล้ว

    Каждый может использовать только XML для DDL/DML и Rollback. Как уже упоминалось другими, использование только XML отменяет необходимость написания Rollback, ОДНАКО!, как указал автор, иногда (и они будут происходить в Production) у вас будут очень сложные SQL statements которые будут почти невозможно прописать через XML.

  • @ZamalSpace
    @ZamalSpace ปีที่แล้ว

    Может ли Liquibase сохранят данные что хранятся в БД при откатах и возрате к последней версии changelog.xml?
 Допустим с фронта приходят данные и сохраняются в БД, потом откатились назад при помощи Liquibase, а потом решили что зря откатились и решили вернутся на последнюю версию. Сохранятся ли при этом данные в БД? Например: в таблице users не было колонки email сделали cangeSet добавив колону email, в БД добавились новые пользователи с почтой. Потом решили откатиться к версси без почты, а потом все же подумали и решили вернутся к последней версии с почтой. В таком случае данные в колонки email сохроняться? И как не потерять данные?

  • @МихаилНовиков-р6ч
    @МихаилНовиков-р6ч 3 ปีที่แล้ว

    Вопрос: при деплое на Хероку, когда проект начинает разворачиваться, и доходит до ликвибейза, выскакивает ошибка: у такого-то пользователя нет прав на выполнение операции INSERT. Соответственно, SQL скрипт не отрабатывает, и проект не запускается. Использую плагин ClearDB, база MySQL. СУБД менять не могу, т.к. не я один с ней работаю. Jaws тоже пробовал - такой же результат один в один, т.е. от конкретно используемого плагина не зависит. Подключаюсь к базе плагина, смотрю права пользователей - права даны на всё. То есть дело не в правах, а сервер мне пытается хероку в ухо вкручивать. Ну а если я запускаю проект локально, предварительно удалив базу, потом делаю дамп того, что сгенерировал ликвибейз, заливаю этот дамп руками на хероку, потом уже деплою туда проект, то всё прекрасно запускается и работает без глюков. Вот что ему надо? Собственно, данное видео нашёл по запросу "liquibase heroku", всё ждал, когда уже дойдёт до деплоя, но увы. Где-нибудь существует подобное видеоруководство с примером заливки на хероку проекта, использующего ликвибейз? Очень странно, такая ходовая, казалось бы, тема, но нигде не разобрана.

    • @TheUsharik
      @TheUsharik  3 ปีที่แล้ว

      Довольно странная ошибка. Какое-то время назад я пробовал деплоить не Хероку приложение использующее liquibase и не помню, что были проблемы именно из-за этого. Нужно больше инфы. Хотя бы точный текст ошибки.

    • @МихаилНовиков-р6ч
      @МихаилНовиков-р6ч 3 ปีที่แล้ว

      @@TheUsharik Дословно текст ошибки следующий: "Пользователь Вася@хост не имеет прав на совершение операции инсерт". Больше никаких подробностей. Пользователь тот же, что прописан во всех конфигах приложения, и в базе на хероку по запросу show privileges показывает, что у него есть все права. Может, дело в @хост. Ошибка на самом деле распространённая, судя по буржуйским форумам, и все ответы сходятся к одному: пользовать платный clearDB. Но это решение я оставлю в качестве последнего средства, т.к. проект учебный, и даже десять баксов жалко, если есть другие пути. А нет у вас подробного описания процесса деплоя, чтобы прям логи посмотреть? Я, кстати, тоже с гикбрейнса студент.

  • @SUBCASTLE
    @SUBCASTLE 3 ปีที่แล้ว +1

    Спасибо
    Добавьте ссылки ваших статей на Хабре

    • @TheUsharik
      @TheUsharik  2 ปีที่แล้ว +1

      habr.com/ru/post/460377/
      habr.com/ru/post/460907/

  • @diegod4811
    @diegod4811 4 ปีที่แล้ว +3

    Скорость на 1.5 если поставить то смотреть можно

    • @TheUsharik
      @TheUsharik  4 ปีที่แล้ว +1

      Учту. Спасибо)

  • @zhennik263
    @zhennik263 2 ปีที่แล้ว

    А зачем мы писали SQL? Если описывать базу напрямую в XML, можно использовать любые базы с любым диалектом. Ну и нет такой дикой структуры

    • @TheUsharik
      @TheUsharik  2 ปีที่แล้ว

      Это так только на первый взгляд. Каждая серьёзная БД имеет массу специфических тонкостей, которые XML описатели от Liquibase не покроют.

    • @zhennik263
      @zhennik263 2 ปีที่แล้ว

      @@TheUsharik Мне просто вот прямо сегодня надо внедрить Liqiubase в новый продакшн проект и я думаю просто описать базу на yaml и все. В проекте +-2 таблицы описанные аналитиками уже. И я думаю то что нельзя описать описателями я и сам не знаю. Ну и для этого можно в исключительном случае добавить SQL

  • @fxvlad
    @fxvlad 3 ปีที่แล้ว

    Всё отлично, но про id ничего не сказано, почему и откуда так

    • @TheUsharik
      @TheUsharik  3 ปีที่แล้ว

      Вы про Id у changeset-ов?

  • @gingerCatStore
    @gingerCatStore 2 ปีที่แล้ว

    начало с 8-45

  • @MrSvent0vit
    @MrSvent0vit 3 ปีที่แล้ว +2

    По содержанию отлично, но вот эти "эээ.." и "ааа..." почти после каждого слова немного мешают..

  • @askat25
    @askat25 ปีที่แล้ว

    зачем рассказывать про среду разработки, когда тема про Liquibase, люди приходят уже с опоеделенными знаниями про java и среду разработки. Много лишних не по тему вопросы, растянут ролик

  • @PavelVashkevich
    @PavelVashkevich ปีที่แล้ว

    Вебинар абсолютно ни о чем. Такое ощущение что автор всё делает лично для себя. Что, почему, зачем...после каждого изменения остается куча вопросов почему иммено так делается и используется.

    • @TheUsharik
      @TheUsharik  ปีที่แล้ว

      Благодарю за оставленный комментарий! Если есть какие-то более конкретные вопросы, то буду рад помочь)

  • @Ren-z5m3t
    @Ren-z5m3t ปีที่แล้ว

    Худшая подача информации по теме Liquibase из виденных мною. Думаю человек потеряет работу, если руководство увидит такую лекцию. Возможно, чел. только вернулся из отпуска?
    Хотя бы понял, что GB - халтурная контора