Завтра в Дніпрі. Вхід вільний.
https://www.facebook.com/events/2067678206713640
https://www.facebook.com/events/2067678206713640
Робив тут один пет-проект.
Невеличкий мікросервис, що працює зстародавнім лайном мамонта legacy-базою MySQL 5.0.
Так-так, "п'ять нуль". Ні, я не збочинець. Нажаль, проапгрейдити базу чи підняти інший мускул/постгрес там, де воно висить, не маємо можливості. Не від нас це залежить.
На домашній машині спеціально встановлений MySQL 5.7 (чи то на ОС, чи в докері...), а для тестів піднімається Testcontainers з MySQL 5.5, де все і відпрацьовується.
SpringBoot 2.2. Його дефолтний mysql-connector каже, що з мускулом 5.5 працювати не буде, треба версію сім з чимось.
Добре, даунгрейдимо версію коннектора.
Приходимо на live.
Вже даунгрейднутий mysql-connector лається та фейлить запуск сервіса. Гугл каже, що для 5.1 тре ще сильніше даунгрейдити.
Даунгрейдимо ще раз. Міняємо драйвер з "лайна мамонта MySQL 5.0.
Приходимо на live.
На сцену виходить Flyway. Каже, що MySQL 5.0 is outdated (та ла-а-адно!) and no longer supported.
І тут ми приймаємо серйозне рішення: даунгрейдимо Flyway. Будеш ти мені тут вказувати, софтиняка така, що мені юзати, а що ні...
На
Падає ще в двох місцях.
Недобре дивимося в сторонулайна мамонта MySQL 5.0.
Можна продаунгрейдити весь SpringBoot. Бо 2.0.1 вже перевірена - і працювала на MySQL 5.0...
І тут ми приймаємо серйозне рішення: викидуємо нафіг Flyway з release-гілки, а всі міграції бази високотехнологічно кладемо у текстовий файл. Руцями накатимо, їх менше десятка.
Чи запрацює, чи щось новеньке вилізе - подивимося. Перевірити зможемо лише через декілька днів.
Знайшов тут docker-образ з MySQL 5.0. Неофіційний, звісно. Якщо не запрацює, доведеться піднімати та тестити на ньому.
До чого я це все?
Та ні до чого. Legacy-ПО - зло.
Невеличкий мікросервис, що працює з
Так-так, "п'ять нуль". Ні, я не збочинець. Нажаль, проапгрейдити базу чи підняти інший мускул/постгрес там, де воно висить, не маємо можливості. Не від нас це залежить.
На домашній машині спеціально встановлений MySQL 5.7 (чи то на ОС, чи в докері...), а для тестів піднімається Testcontainers з MySQL 5.5, де все і відпрацьовується.
SpringBoot 2.2. Його дефолтний mysql-connector каже, що з мускулом 5.5 працювати не буде, треба версію сім з чимось.
Добре, даунгрейдимо версію коннектора.
Приходимо на live.
Вже даунгрейднутий mysql-connector лається та фейлить запуск сервіса. Гугл каже, що для 5.1 тре ще сильніше даунгрейдити.
Даунгрейдимо ще раз. Міняємо драйвер з "
com.mysql.cj.jdbc.Driver" на deprecated "com.mysql.jdbc.Driver". Недобре дивимося в сторону Приходимо на live.
На сцену виходить Flyway. Каже, що MySQL 5.0 is outdated (та ла-а-адно!) and no longer supported.
І тут ми приймаємо серйозне рішення: даунгрейдимо Flyway. Будеш ти мені тут вказувати, софтиняка така, що мені юзати, а що ні...
На
mvn clean compile падає сконфігурований для тестів бін Флайвея, бо API у даунгрейднутого Флейвея інше. Переписуємо конфіг біна.Падає ще в двох місцях.
Недобре дивимося в сторону
Можна продаунгрейдити весь SpringBoot. Бо 2.0.1 вже перевірена - і працювала на MySQL 5.0...
І тут ми приймаємо серйозне рішення: викидуємо нафіг Flyway з release-гілки, а всі міграції бази високотехнологічно кладемо у текстовий файл. Руцями накатимо, їх менше десятка.
Чи запрацює, чи щось новеньке вилізе - подивимося. Перевірити зможемо лише через декілька днів.
Знайшов тут docker-образ з MySQL 5.0. Неофіційний, звісно. Якщо не запрацює, доведеться піднімати та тестити на ньому.
До чого я це все?
Та ні до чого. Legacy-ПО - зло.
GIT commit NPE
Робив тут один пет-проект. Невеличкий мікросервис, що працює з стародавнім лайном мамонта legacy-базою MySQL 5.0. Так-так, "п'ять нуль". Ні, я не збочинець. Нажаль, проапгрейдити базу чи підняти інший мускул/постгрес там, де воно висить, не маємо можливості.…
Доречі, піднялося і запрацювало.
І не забувайте про
scope для ваших залежностей. З самого початку. А то одного разу отак проведете їх ревізію у pom-ніку та зміните декілька - і раптом з'ясується, що ви використовували якийсь edu.emory.mathcs.backport.java.util.Collections замість java.util.Collections. Який тягнувся транзитивно якоюсь залежністю, яка чомусь була з дефолтним scope (тобто мала compile, а не provided).Доречі, там передзамовлення на "Відьмак: Старий світ" ("The Witcher: Old World") відкрилося.
Розсилка планується влітку наступного року.
#boardGames
Розсилка планується влітку наступного року.
#boardGames
Сік-ліви, дей-оффи, пропозішени та оппортьюнітіз...
Пробачте, не можу з цього не стібатися. Так, я сам інколи використовую щось накшталт "тікет" або "кейс", але то здебільшого у межах команди та при обговоренні робочих моментів.
Прочитав цей перелік у листі та зробив фейспалм. То вже тре було "18 робочих днів вакейшна" написати, чи шо...
Відповісти вирішив у тій же манері 😁
А ви як до такого гібридного запозичання ставитесь? Як "у побуті", так і в листах (як тут).
Пробачте, не можу з цього не стібатися. Так, я сам інколи використовую щось накшталт "тікет" або "кейс", але то здебільшого у межах команди та при обговоренні робочих моментів.
Прочитав цей перелік у листі та зробив фейспалм. То вже тре було "18 робочих днів вакейшна" написати, чи шо...
Відповісти вирішив у тій же манері 😁
А ви як до такого гібридного запозичання ставитесь? Як "у побуті", так і в листах (як тут).
Фейсбук задає тренди. Не тільки технологіями.
Декілька днів тому:
Dev: Щось з "живою" кафкою, нє? З десятка спроб достукатися до неї у мене лише одна успішна, інші TimeoutException. %DevOpsName%, тобі щось відомо з цього приводу?
DevOps: Заббікс не відповідає. Може, в амазоні щось фейсбукнуло.
Декілька днів тому:
Dev: Щось з "живою" кафкою, нє? З десятка спроб достукатися до неї у мене лише одна успішна, інші TimeoutException. %DevOpsName%, тобі щось відомо з цього приводу?
DevOps: Заббікс не відповідає. Може, в амазоні щось фейсбукнуло.
Другий сезон жбурляння залізяк розпочався 28-го березня. Цього разу процес відбувався да-а-алеко не кожні вихідні.
#knives
#knives