Apr
14
2012

Joomla!2.5.xサイトを2.5.4にアップデートしたら不完全!?

Print
0 votes
Blog - Joomla! CMS
Written by:Joomler! 7674 hits

これ次で対応するのかな。2.5.3だったサイトを2.5.4にしたら、完全にアップデートできた。ところがだ、アップデートに失敗するサイトもある。失敗の原因は調べていないが、データベースの変更があるので、ファイルの上書きでは駄目だからとデータベーステーブルをJoomla2.5.4のものと比較してみた。

次の3点がJoomla2.5.4のサイトと異なる。これはアップデートに失敗したためだ。

エラーで止まったものだから、さてどうしたものかと思われたら以下のクエリをphpMyAdminなどで実行すると”良いかもしれない”。(環境による)

 

INSERT INTO `#__extensions` (`extension_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `custom_data`, `system_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
(28, 'com_joomlaupdate', 'component', 'com_joomlaupdate', '', 1, 1, 0, 1, '{"legacy":false,"name":"com_joomlaupdate","type":"component","creationDate":"February 2012","author":"Joomla! Project","copyright":"(C) 2005 - 2012 Open Source Matters. All rights reserved.","authorEmail":"
 This e-mail address is being protected from spambots. You need JavaScript enabled to view it
 ","authorUrl":"www.joomla.org","version":"2.5.2","description":"COM_JOOMLAUPDATE_XML_DESCRIPTION","group":""}', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0);

INSERT INTO `#__menu` (`id`, `menutype`, `title`, `alias`, `note`, `path`, `link`, `type`, `published`, `parent_id`, `level`, `component_id`, `ordering`, `checked_out`, `checked_out_time`, `browserNav`, `access`, `img`, `template_style_id`, `params`, `lft`, `rgt`, `home`, `language`, `client_id`) VALUES
(22, 'menu', 'com_joomlaupdate', 'Joomla! Update', '', 'Joomla! Update', 'index.php?option=com_joomlaupdate', 'component', 0, 1, 1, 28, 0, 0, '0000-00-00 00:00:00', 0, 0, 'class:joomlaupdate', 0, '', 41, 42, 0, '*', 1);

ALTER TABLE `#__languages` ADD COLUMN `access` integer unsigned NOT NULL default 0 AFTER `published`;

ALTER TABLE `#__languages` ADD KEY `idx_access` (`access`);

UPDATE `#__categories` SET `extension` = 'com_users.notes' WHERE `extension` = 'com_users';

UPDATE `#__extensions` SET `enabled` = '1' WHERE `protected` = '1' AND `type` <> 'plugin';

 

※もちろん、”#_”部分は、ご自身のデーターベースプレフィックスに変更してから行う。

これは失敗した方用。さらに、ファイルも怪しいかもしれないので、アップデート用ファイルをダウンロードしてきて上書きする。

これで2.5.4になったつもりです。それでも、管理画面トップでJoomlaの最新バージョンの更新通知が消えないなら、上記3番目のupdatesテーブルを空にすると良い。※もちろん、他の更新も消えるので他の更新がある場合はその更新を行った後でやる。以下。

TRUNCATE TABLE `#__updates`

ここまでで失敗したサイトは綺麗になるかもしれない。

さて、ここからが本題で元々アップデートに成功していたサイトと比較していて気づいたのだが、アップデートに成功したかに見えていたサイトは実は完全に成功していたわけではなかった。データベースを比較してみるとlanguagesテーブルの構造がアップデートされていない。

だめじゃん。

上記のlanguages関連の2行を実行することで解決。その下のUPDATEも実行した方が良いかもしれない。私の場合は、確認してみると実行後の結果だったのでやらなかったが。

とても便利になったJoomlaだが、失敗すると面倒なことが起こりうることがわかった。想像できることだが。これなら、単にsqlファイルに書いたクエリを実行するのではなく、プログラムでupdateスクリプトを実行するように書いた方が安心なのかもしれない。もちろんそれにも対応しているのだから。

Tags更新,00,com,成功,アップデート,テーブル,`type`,Update,TABLE,データベース,実行,`checked,ファイル,失敗,id`,Joomla,2.5.4,languages,joomlaupdate,`access`
 

JContentPlus for Joomla!1.5 powered by Joomler!.net