czwartek, 8 maja 2014

Rozwiązanie problemu po migracji joomla 2.5 do 3.3

Migracja to zawsze ryzyko :)

Migrowałem dziś witrynę Joomla w wersji 2.5.20 do najnowszej poprzez domyślny migrator z joomla 2.5

Po migracji na dzień dobry panel administratora objawił się białym ekranem. Zacząłem więc poszukiwania w necie o co chodzi. Ludzie raportują szereg błędów związanych z migracją. Ja opisze mój. Nie wiem czy będzie skuteczny w innych przypadkach , więc jeżeli się zdecydujesz go zastosować to na własną odpowiedzialność :)

Przede wszystkim biały ekran oznacza że po instalacji wystąpił błąd ale nie wyświetla się gdyż wyświetlanie błędów jest wyłączone. Na początek trzeba włączyć wyświetlanie błędów w configuration.php

Pozycję public $error_reporting = 'default'; zmieniamy na public $error_reporting = 'maximum';

Następnie na ekranie pojawi się błąd. W moim przypadku chodziło o błąd związany z plikiem
administrator/components/com_postinstall/models/messages.php

Plik messages.php jest w porządku ale okazuje się że podczas migracji nie jest tworzona tabela #_postinstall_messages

Należy ją po prostu dodać. Metoda dowolna na przykład phpmyadmin. Ja użyłem fajnego dodatku o nazwie art-adminer

Żeby dostać się na zaplecze i go zainstalować należy użyc linku administrator/index.php?option=com_content

Zaplecze powinno działać, więc można doinstalować dodatek i za jego pomocą dodać tabelę #_postinstall_messages wykonując polecenie sql. # należy zamienić na właściwy przedrostek.


CREATE TABLE IF NOT EXISTS `#_postinstall_messages` (
`postinstall_message_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`extension_id` bigint(20) NOT NULL DEFAULT '700' COMMENT 'FK to #__extensions',
`title_key` varchar(255) NOT NULL DEFAULT '' COMMENT 'Lang key for the title',
`description_key` varchar(255) NOT NULL DEFAULT '' COMMENT 'Lang key for description',
`action_key` varchar(255) NOT NULL DEFAULT '',
`language_extension` varchar(255) NOT NULL DEFAULT 'com_postinstall' COMMENT 'Extension holding lang keys',
`language_client_id` tinyint(3) NOT NULL DEFAULT '1',
`type` varchar(10) NOT NULL DEFAULT 'link' COMMENT 'Message type - message, link, action',
`action_file` varchar(255) DEFAULT '' COMMENT 'RAD URI to the PHP file containing action method',
`action` varchar(255) DEFAULT '' COMMENT 'Action method name or URL',
`condition_file` varchar(255) DEFAULT NULL COMMENT 'RAD URI to file holding display condition method',
`condition_method` varchar(255) DEFAULT NULL COMMENT 'Display condition method, must return boolean',
`version_introduced` varchar(50) NOT NULL DEFAULT '3.2.0' COMMENT 'Version when this message was introduced',
`enabled` tinyint(3) NOT NULL DEFAULT '1',
PRIMARY KEY (`postinstall_message_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
0 SQL=SHOW FULL COLUMNS FROM `#_postinstall_messages`

Po udanym dodaniu tabeli musimy naprawić jeszcze jeden błąd związany z FOF.
Table #_postinstall_cpanels does not exist

Aby to naprawić musisz skasować te pliki (zalecam je najpierw zarchiwizować w razie czego)

libraries/fof/controller.php
libraries/fof/dispatcher.php
libraries/fof/inflector.php
libraries/fof/input.php
libraries/fof/model.php
libraries/fof/query.abstract.php
libraries/fof/query.element.php
libraries/fof/query.mysql.php
libraries/fof/query.mysqli.php
libraries/fof/query.sqlazure.php
libraries/fof/query.sqlsrv.php
libraries/fof/render.abstract.php
libraries/fof/render.joomla.php
libraries/fof/render.joomla3.php
libraries/fof/render.strapper.php
libraries/fof/string.utils.php
libraries/fof/table.php
libraries/fof/template.utils.php
libraries/fof/toolbar.php
libraries/fof/view.csv.php
libraries/fof/view.html.php
libraries/fof/view.json.php
libraries/fof/view.php


Uruchom komponent Post-installation messages. Jeżeli nie ma więcej błędów oznacza to SUKCES!

Powodzenia!



Brak komentarzy:

Prześlij komentarz