Joomla 6.0
Dne 14. října 2025 bylo oficiálně vydáno Joomla 6.0 (kódové jméno Kuimarisha) společně s Joomla 5.4 (Kutegemea). Joomla 5.1 přinesla zabezpečené TUF aktualizace, ale s Joomla 5.4 / 6.0 přichází automatické aktualizace jádra, které budou probíhat bezpečně a bez nutnosti manuálního zásahu.
Phoca Cart - chyba při aktualizaci na verzi 3.5.5
aktualizace komponenty Phoca Cart z verze 3.5.2 na 3.5.5 končí chybou, můžu poprosit o radu?
Díky moc.
Varování
JInstaller: :Instalace: Chyba SQL Duplicate column name 'queue_number'
Rozšíření Aktualizace: SQL chyba zpracování dotazu: DB funkce selhala, číslo chyby 1060
Duplicate column name 'queue_number'
SQL =
ALTER TABLE `#__phocacart_orders` ADD COLUMN `queue_number` varchar(64) NOT NULL DEFAULT '';
Balíček Aktualizace: Došlo k chybě při instalaci rozšíření: com_phocacart_v3.5.5.zip
tohle je bohužel chyba, která se nedá ošetřit díky chybějícím instrukcím v MySQL (MariaDB to umí)
Při upgradu došlo k tomu, že to chtělo vložit sloupec do databáze, který tam už byl. Z jakého důvodu tam už byl, těžko říct.
Tady pomůže jen postupné mazání instrukcí pro upgrade a zkoušení upgradu:
- tedy otevřít instalační ZIP balíček a vymazat tuto instrukci z update SQL dotazu
instalační balíček ZIP (pouze komponenty): admin/update/update/sql/mysql/3.5.3.sql
Ale zda smazat jen instrukci pro tento sloupec nebo pro ostatní, těžko říc - zkusil bych podle toho souboru zjistit, zda ty tabulky už v databázi jsou nebo ne, pokud ano, pak všechny smazat
Po smazání balíček znovu zabalit a zkusit nainstalovat. A pokud tam bude další sloupec, co už v databázi je, tak opět to stejné pro daný sloupec
více zde:
www.phoca.cz/blog/1100-solution-to-a-pro...-updating-components
Bohužel, tak funguje instalační program Joomly a MySQL, které nemá tuto základní instrukci
Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook
Bohužel, tak funguje instalační program Joomly a MySQL, které nemá tuto základní instrukci
Proto mi vždy v easysoftware programátoři kladli na srdce, že je třeba nevyužívat automatické funkce a udělat si vlastní script php do aplikace, který bude načítat přírůstkové DB po zjištění stavu jaká verze je nainstalovaná (na to pak existuje složka v instalaci s přírůstkovými DB).
Nebo jsem to popletl a mluvím o něčem úplně jiném
MiniJoomla! - www.minijoomla.cz - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
-- ALTER TABLE `#__phocacart_orders` ADD COLUMN `queue_number` varchar(64) NOT NULL DEFAULT '';
-- ALTER TABLE `#__phocacart_orders` ADD COLUMN `queue_number_id` int(11) NOT NULL DEFAULT '0';
-- ALTER TABLE `#__phocacart_product_stock` ADD COLUMN `sku` varchar(255) NOT NULL DEFAULT '';
-- ALTER TABLE `#__phocacart_product_stock` ADD COLUMN `ean` varchar(15) NOT NULL DEFAULT '';
V rámci instalátoru to lze řešit pomocí FOF frameworku od Akeeby (je součástí Joomly). Aktualizace se tam nepíší do sql souborů ale do XML, s různými doplňujícími podmínkami...
To ale asi neplatí u aplikací ,které se prvotně napsaly pro J25, kde asi fof akeeba nebyl, a nyní jsou jen upgradovány na j3, že ne?
MiniJoomla! - www.minijoomla.cz - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
Proto mi vždy v easysoftware programátoři kladli na srdce, že je třeba nevyužívat automatické funkce a udělat si vlastní script php do aplikace, který bude načítat přírůstkové DB po zjištění stavu jaká verze je nainstalovaná (na to pak existuje složka v instalaci s přírůstkovými DB).
Původně měly všechny Phoca rozšíření vlastní metody, tedy se to tam kontrolovalo a k takovýmto chybám nedocházelo. Ale po enormním tlaku typu: "Proč rozšíření nepoužívá standardní Joomla instalační vlastnost?", atd. se to změnilo.
Ale tady bych nevinil ani tak Joomlu jako spíš jen a pouze MySQL. Kvůli této chybějící jednodoché instrukci "IF NOT EXIST" v MySQL se píší zbytečně přeplácané řešení a vůbec tomu tak nemusí být. No a kvůli tomu, že je v Joomle pouze jeden driver jak pro MySQL tak pro MariaDB, to pak "odnášejí" i uživatelé MariaDB. A zase nutno podotkonout, že s tím Joomla asi nic neudělá, protože psát driver zvlášť pro MariDB a MySQL asi nemá smysl, když jsou, co se týče chování, z 99% stejný.
Pokud se člověk podívá např. na stack overflow a témata jako je "mysql - add column if not exist", tak uvidí vysoký počet požadavků na řešení tohoto problému a zároveň různé krkolomné řešení za pomocí stávajících metod. Pro vývojáře MySQL snad neexistuje přímočařejší feedback pro to, jakou vlastnost by měly implementovat.
Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook
Na druhou stranu, mělo by se jednat v podstatě o extrémní situaci, zřejmě když někdo nainstaluje nějakou beta verzi nebo nějak zasáhne do databáze, takže je asi v zásadě zbytečné to jakkoliv řešit
Nejnovější příspěvky