[spip-dev] Migration SPIP 1.8 vers 2.0 : IMG/IMG !

Bonjour,

Je viens de constater sur 1 sites migré de SPIP 1.8? à 2.0 beta 2 SVN d'il y a 15 jours que la table spip_documents contenait toujours les chemins avec IMG/

Il manque un
UPDATE spip_documents SET fichier=substring(fichier,5) WHERE fichier LIKE 'IMG/%'

Lors de l'upgrade.

Cédric

* cedric.morin@yterium.com tapuscrivait, le 03/11/2008 20:59:

Cédric

Bonjour,

Je viens de constater sur 1 sites migré de SPIP 1.8? à 2.0 beta 2 SVN d'il y a 15 jours que la table spip_documents contenait toujours les chemins avec IMG/

Il manque un
UPDATE spip_documents SET fichier=substring(fichier,5) WHERE fichier LIKE 'IMG/%'

Lors de l'upgrade.

vérifie tes sources
Connexion · GitLab

Je ne dis pas que ce n'est pas dans le source.
Ce que je dis, c'est que ma table spip_documents contenant 3 documents n'a pas été mis à jour.
Et, erreur de ma part, la version de base était dans spip_meta :
('version_installee', '1.917', '2006-11-02 19:25:27'),

Je fournis le dump mysql sur demande.

Pour info, voici le log de mise à jour :
Sep 28 23:14:50 127.0.0.1 (pid 7256) 1934/0: maj_1_934
Sep 28 23:14:50 127.0.0.1 (pid 7256) 1934/0: ok

Qui montre que :
function maj_1_934 () {
        $dir_img = substr(_DIR_IMG,strlen(_DIR_RACINE));
        $n = strlen($dir_img) + 1;
        spip_query("UPDATE spip_documents SET `fichier`=substring(fichier,$n) WHERE `fichier` LIKE " . _q($dir_img . '%'));
  }

n'a rien trouvé à modifier dans :
INSERT INTO `spip_documents` (`id_document`, `id_vignette`, `id_type`, `titre`, `date`, `descriptif`, `fichier`, `taille`, `largeur`, `hauteur`, `mode`, `distant`, `idx`, `maj`) VALUES
(2, 0, 1, 'Carte d''Alsace', '2006-10-31 00:00:00', '', 'IMG/jpg/Alsace-2.jpg', 9446, 195, 363, 'vignette', 'non', 'oui', '2006-11-02 19:30:18'),
(3, 0, 3, 'logo', '2006-11-03 00:00:00', '', 'IMG/gif/i-logo.gif', 10049, 339, 152, 'vignette', 'non', 'oui', '2006-11-03 21:17:36'),
(4, 0, 1, '', '2007-03-13 00:00:00', '', 'IMG/jpg/Logo_vertical_vert_redimensionner.jpg', 27095, 387, 365, 'vignette', 'non', 'oui', '2007-03-13 18:57:14');

tu veux dire que tu as testé la requete a la main et qu'elle ne fait rien ?
Cédric

* cedric.morin@yterium.com tapuscrivait, le 04/11/2008 09:48:

* cedric.morin@yterium.com tapuscrivait, le 03/11/2008 20:59:

Cédric

Bonjour,

Je viens de constater sur 1 sites migré de SPIP 1.8? à 2.0 beta 2 SVN d'il y a 15 jours que la table spip_documents contenait toujours les chemins avec IMG/

Il manque un
UPDATE spip_documents SET fichier=substring(fichier,5) WHERE fichier LIKE 'IMG/%'

Lors de l'upgrade.

vérifie tes sources
Connexion · GitLab

Je ne dis pas que ce n'est pas dans le source.
Ce que je dis, c'est que ma table spip_documents contenant 3 documents n'a pas été mis à jour.
Et, erreur de ma part, la version de base était dans spip_meta :
('version_installee', '1.917', '2006-11-02 19:25:27'),

Je fournis le dump mysql sur demande.

Pour info, voici le log de mise à jour :
Sep 28 23:14:50 127.0.0.1 (pid 7256) 1934/0: maj_1_934
Sep 28 23:14:50 127.0.0.1 (pid 7256) 1934/0: ok

Qui montre que :
function maj_1_934 () {
          $dir_img = substr(_DIR_IMG,strlen(_DIR_RACINE));
          $n = strlen($dir_img) + 1;
          spip_query("UPDATE spip_documents SET `fichier`=substring(fichier,$n) WHERE `fichier` LIKE " . _q($dir_img . '%'));
    }

n'a rien trouvé à modifier dans :
INSERT INTO `spip_documents` (`id_document`, `id_vignette`, `id_type`, `titre`, `date`, `descriptif`, `fichier`, `taille`, `largeur`, `hauteur`, `mode`, `distant`, `idx`, `maj`) VALUES
(2, 0, 1, 'Carte d''Alsace', '2006-10-31 00:00:00', '', 'IMG/jpg/Alsace-2.jpg', 9446, 195, 363, 'vignette', 'non', 'oui', '2006-11-02 19:30:18'),
(3, 0, 3, 'logo', '2006-11-03 00:00:00', '', 'IMG/gif/i-logo.gif', 10049, 339, 152, 'vignette', 'non', 'oui', '2006-11-03 21:17:36'),
(4, 0, 1, '', '2007-03-13 00:00:00', '', 'IMG/jpg/Logo_vertical_vert_redimensionner.jpg', 27095, 387, 365, 'vignette', 'non', 'oui', '2007-03-13 18:57:14');

tu veux dire que tu as testé la requete a la main et qu'elle ne fait rien ?

Je ne sais pas comment tester la requête à la main
Quand je vois dans le code : substr(_DIR_IMG,strlen(_DIR_RACINE));
je me dis qu'il y a des constantes qui devraient être initialisés, et que puisque je ne connais pas le contexte d'initialisation...

Et là, paf!, je viens de comprendre : je suis dans un contexte de SPIP mutualisé
et donc, _DIR_IMG ne vaut pas : IMG/ mais : sites/urldusite/IMG/

Et évidement, ça ne peut pas marcher.

CQFD