Skip to content

Conversation

@TomiBelan
Copy link
Member

@TomiBelan TomiBelan commented Jul 16, 2025

Kópia PR #298, lebo Github ho automaticky zavrel keď som zmazal vetvu z predošlého PR #297 (upgrades), a nedovolí mi ho otvoriť ani zmeniť base branch. FFS.


V tomto PR testujem veľké upgrady systémových závislostí (PHP a MySQL) aby sme sa pripravili na Ubuntu OS upgrade.

Vyzerá že všetko funguje, ale najlepšie by bolo mergnuť až vtedy keď spravíme ten OS upgrade, aby Dockerfile zhruba vždy zodpovedal produkcii.

PHP 7.2 nie je najnovšia verzia ale už sa aspoň nachádza v Surého PPA, na rozdiel od nášho starého 5.5.

Čo sa týka MySQL 8.0: Za prvé zmenili niečo s prihlasovaním, čo nefunguje s PHP<7.4 takže to treba nastaviť po starom. Za druhé už defaultné kódovanie je utf8mb4 a netreba sa s tým toľko otravovať, takže môžeme zrušiť náš custom kódovanie config. Ale naša databáza je utf8 a.k.a. utf8mb3. Možno sa to dá alternúť aj za behu, ale ja som to skonvertoval pri načítaní z dumpu takýmto príkazom.

xzcat -v /tmp/latest-anonymous.sql.xz | sed -r '/^\)/ s/DEFAULT CHARSET.*/DEFAULT CHARSET=utf8mb4;/ ; /^-- Final view/,$ { s/utf8\b/utf8mb4/; s/utf8_\w+/utf8mb4_0900_ai_ci/ }' | docker compose exec -T db mysql -uanketa -panketa anketa

This change is Reviewable

@TomiBelan TomiBelan force-pushed the bigupgrades branch 2 times, most recently from 20572d7 to cdd1c30 Compare July 17, 2025 13:06
upgrading to PHP 7.3 would be harder. Doctrine < 2.6 with PHP >= 7.3 prints a
warning that causes a failure in "composer install" or "composer update". but
Doctrine >= 2.6 apparently requires Symfony >= 3.0.
note that this only affects `character_set_client`, `character_set_connection`,
and `character_set_results`. it does not change `character_set_database`,
`character_set_server`, and the charsets of all existing tables, which still
need to be configured/migrated separately.
@TomiBelan
Copy link
Member Author

Vďaka za review :)

Zatiaľ nemergujem. Mergnem cca blízko pred/po upgrade ozajstného OS. Aspoň vďaka tomuto PR vieme že asi bude fungovať.

Prosím @gardenerik rozhodni:
A) Kto upgradne server? Radšej ty? Radšej ja? Spolu naživo? Čokoľvek je za mňa ok ale vyber ktoré preferuješ.
B) Kedy? Asi až keď sa zverejnia výsledky + nejaký odstup.
C) Prejsť na MariaDB ako @tvinar navrhol v #298? Mne je to asi jedno.

@gardenerik
Copy link
Member

Kludne to upgradni, daj tomu este tak tyzden, lebo PriF to asi aktivne pozeraju teraz a uvidime. Na databazu nemam silnu preferenciu, ale nove deploymenty dnes uz pouzivaju skor Mariu, takze kludne to spravme tak

@TomiBelan
Copy link
Member Author

Zostanem na MySQL, nie MariaDB. Ale je to dosť jedno. CC @tvinar FYI

  • Obidve sú dostatočne populárne. Zo začiatku možno vyzeralo že MariaDB vyhrá a MySQL zakape, ale MySQL teraz asi vyhráva. Objektívne čísla sa ťažko zháňajú ale napr na Docker Hube má mysql 6M a mariadb 2M stiahnutí za týždeň.
  • Obidve sú plusmínus FOSS, ale obidve firmy to bohužiaľ neberú veľmi vážne a predávajú všelijaké platené rozšírenia.
  • Obidve majú zhruba rovnako neistú budúcnosť - MariaDB firma má odjakživa všelijaké finančné problémy a Oracle tiež nedávno prepúšťal veľa MySQL developerov.
  • Ubuntu má balíčky pre obidve. V aktuálnom LTS noble je MySQL 8.0 a MariaDB 10.11. Pre úplnosť, rôzne iné distrá (napr Debian, Arch) majú iba MariaDB a nainštalujú ho aj keď si zažiadaš MySQL.
  • Keď upgraduješ starý Ubuntu server, defaultne si vyberie MySQL.
  • MySQL 8.0 a MariaDB >=11 konečne všade používajú defaultné kódovanie utf8mb4, takže môžem zahodiť náš /etc/mysql/conf.d/nechceme-sproste-kodovanie.cnf ktorý ma odjakživa irituje. Bohužiaľ MariaDB 10.11, ktorý je v noble, ešte nemá správny default. Keď máš $LANG == en_US.UTF-8 tak CLI klient mysql/mariadb nastaví character_set_client a character_set_connection na utf8mb3 a.k.a. utf8. Takže stále treba custom config, alebo pridať apt repo pre MariaDB 11. Je to absolútna prkotina ale žiadne silnejšie rozdiely nenachádzam. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants