Aktualizace moodlu z 2.6.11 na 2.9.1

Re: Aktualizace moodlu z 2.6.11 na 2.9.1

autor David Mudrák -
Počet odpovědí: 5
Obrázek: Moodle HQ Obrázek: Obzvláště nápomocní moodlisté Obrázek: Překladatelé Obrázek: Vývojáři

Mně se to podařilo vcelku bez problémů přes příkazovou řádku - https://docs.moodle.org/29/en/Administration_via_command_line#Converting_InnoDB_tables_to_Barracuda

Myslím, že by to mělo fungovat i na Windows - http://php.net/manual/en/install.windows.commandline.php

V odpovědi na David Mudrák

Re: Aktualizace moodlu z 2.6.11 na 2.9.1

autor Robert Pecko -
Pokud jsem to dobře pochopil, mělo by stačit v commandlajně na serveru spustit:

Pro zobrazení tabulek, které je třeba upravit:

C:\PHP5\php.exe -f "x:\moodle\admin\cli\mysql_compressed_rows.php" --list

Pro opravu tabulek:

C:\PHP5\php.exe -f "x:\moodle\admin\cli\mysql_compressed_rows.php" --fix

Souhlasíte?

Má to ještě jeden háček. Nemám fyzický ani vzdálený přístup k operačnímu systému. Lze to zařídit i jinak? Mám k dispozici phpmyadmin a disk s moodlem si můžu namapovat viz ukázka v příkazech (disk X: ). Může to být k něčemu?

Děkuji za odpověď.



V odpovědi na Robert Pecko

Re: Aktualizace moodlu z 2.6.11 na 2.9.1

autor David Mudrák -
Obrázek: Moodle HQ Obrázek: Obzvláště nápomocní moodlisté Obrázek: Překladatelé Obrázek: Vývojáři

Případně je tam ještě argument --showsql který zobrazí potřebné SQL, které byste potom mohl spustit ve vašem nástroji. Vesměs se jedná o

SET SESSION sql_mode=STRICT_ALL_TABLES;
SET GLOBAL innodb_file_per_table=1;
SET GLOBAL innodb_file_format=Barracuda;

a potom pro každou tabulku, která potřebuje opravit, se spouští

ALTER TABLE jméno_tabulky ROW_FORMAT=Compressed;

Jenže právě seznam těch tabulek je něco, co vám momentálně umí zobrazit pouze tento skript mrzutost

V odpovědi na David Mudrák

Re: Aktualizace moodlu z 2.6.11 na 2.9.1

autor Robert Pecko -

Zkoušel jsem se podívat na tabulky, které potřebují změnu, z NTB. Stahnul PHP 5.6.12, namapoval jsem si disk X: s moodlem a spustil:

c:\php5.6.12>php.exe -f x:\moodle\admin\cli\mysql_compressed_rows.php -l
No syntax errors detected in x:\moodle\admin\cli\mysql_compressed_rows.php

Odpověď mne překvapila, neb instalace píše úplně něco jiného (pravý opak).

Zkusil jsem pak ještě změnit adresář (disk):

x:\moodle>c:\php5.6.12\php.exe admin\cli\mysql_compressed_rows.php -l
Fatal error: $CFG->dataroot is not configured properly, directory does not exist or is not accessible! Exiting.

Tady bych řekl, že jsem pokročil, skrit se evidentně snaží kouknout do konfiguráku a hledá adresář moodledata, který je na serveru na disku D:. Cestu mohu v konfiguráku upravit (např. na Y:, kam ho mohu namapovat ručně), ale nevím, zda se něco někam nezapisuje do databáze a tím bych to povrtal.

Jak se taková aktualizace řeší někne na hostingu, který je v XY datovém centru?

Co by se stalo, kdyby se převod tabulek neuskutečnil?

PS: Na Windows se argumenty liší:

--list -> -l

--fix -> -f



V odpovědi na Robert Pecko

Re: Aktualizace moodlu z 2.6.11 na 2.9.1

autor David Mudrák -
Obrázek: Moodle HQ Obrázek: Obzvláště nápomocní moodlisté Obrázek: Překladatelé Obrázek: Vývojáři

To No syntax errors detected se vypisuje proto, protože ten váš argument -l váš příkazový interpret považuje za argument pro php.exe a nikoliv pro ten spuštěný skript. Nevím jak to funguje ve Windows, v Linuxu (bash) by se tuším dalo za název toho skriptu -- aby se všechny ostatní argumenty považovaly za argumenty pro spuštěné PHP.

Ta druhá chyba ještě může být způsobena přístupovými právy, ale opět, o provozování Moodle na Windows toho moc nevím, takže tady nebudu moct pomoci.

V odpovědi na David Mudrák

Re: Aktualizace moodlu z 2.6.11 na 2.9.1

autor Robert Pecko -
Máte pravdu, chyba byla na mé straně. Mezi -- a list musí být mezera úsměv. Správně je tedy -- list , zatím co --list je chybně. Ale stále jsem se neposunul do cíle. Změnil jsem cestu v config.php na mnou namapovaný disk Y:. Adresář moodle data mám tedy dostupný z y:\moodledata.
V config.php je tedy úprava:
$CFG->dataroot  = 'y:\moodledata';
Po spuštění:
c:\php5.6.12>php.exe -f x:\moodle\admin\cli\mysql_compressed_rows.php -- list
Fatal error: $CFG->dataroot is not writable, admin has to fix directory permissions! Exiting.
Stejnou odpověď dostanu i když jedu podle návodu:
https://ttcshelbyville.wordpress.com/2015/04/19/mysql-antelope-and-barracuda-moodle/

c:\wamp\bin\php\php5.6.12>php x:\moodle\admin\cli\mysql_compressed_rows.php -l
Fatal error: $CFG->dataroot is not writable, admin has to fix directory permissions! Exiting.

Taky si myslíte, že PHP skript chce něco zapisovat do config.php?