Tenter de récupérer une migration ratée !

Uniquement si on est dans un cas desesperé et sans garanties de résultats.

Erreur : Call to a member function set() on a non-object in … controller.php on line ...

Type d'erreur : Fatal error: Call to a member function set() on a non-object in /home/sourcech/public_html/administrator/components/com_login/controller.php on line 38
Sur le contrôleur principal d'un composant, sur une ligne de type $this->input->set('view', 'login'); (les paramètres peuvent différer).

Correctif :

  • renommer /librairies/joomla en /librairies/joomla-old
  • recopier /librairies/joomla d'un J3 à jour.

Peu de composants ajoutent des éléments dans ce dossier.

Erreur : Fatal error: Class JControllerLegacy cannot extend from interface JController in .../libraries/cms/controller/legacy.php on line 22

Renommer /libraries/cms en cms-old et recopier /librairies/cms d'un pack d'installation dezippé.

Erreur : Tables manquantes

J'ai eu le cas des tables #_postinstall_message et #_content_types qui manquaient.

Il faut les créer avec phpMyAdmin.

#_postinstall_message

Avec phpMyAdmin (remplacer # par votre prefixe de tables).

--
-- Structure de la table '#__postinstall_messages'
--

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=4 ;

#_content_types

Avec phpMyAdmin (remplacer # par votre préfixe de tables).

--
-- Structure de la table '#__content_types'
--

CREATE TABLE IF NOT EXISTS '#__content_types' (
'type_id' int(10) unsigned NOT NULL AUTO_INCREMENT,
'type_title' varchar(255) NOT NULL DEFAULT '',
'type_alias' varchar(255) NOT NULL DEFAULT '',
'table' varchar(255) NOT NULL DEFAULT '',
'rules' text NOT NULL,
'field_mappings' text NOT NULL,
'router' varchar(255) NOT NULL DEFAULT '',
'content_history_options' varchar(5120) NOT NULL COMMENT 'JSON string for com_contenthistory options',
PRIMARY KEY ('type_id'),
KEY 'idx_alias' ('type_alias')
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=10005

Unknown column 'title_alias' in 'j17_content'

Avec phpMyAdmin (remplacer # par votre préfixe de tables).

ALTER TABLE #_content' ADD 'title_alias' VARCHAR( 255 ) NOT NULL DEFAULT '' AFTER 'alias'
ALTER TABLE '#_content' CHANGE 'title_alias' 'title_alias' VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'Deprecated in Joomla! 3.0';

Si on accede enfin à l'administration :

  • Corriger la base : extension -> bd
  • Essayer de faire « decouvrir »
  • Installer le template d'admin isis

Voir également mes autres articles de la section Passer de Joomla 2.5 à Joomla 3 pour les autres problème plus spécifiques que j'ai rencontrés.