IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

MySQL & Wordpress : Migration blog. Voie sans issue.


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 6
    Par défaut MySQL & Wordpress : Migration blog. Voie sans issue.
    Bonjour,

    Ma configuration WP actuelle
    - Version de WordPress : 2.9.1
    - Version de PHP/MySQL : 5.0.32
    - Thème utilisé : RichWP Magazine Light
    - Extensions en place :
    - Nom de l'hebergeur : OVH
    - Adresse du site : fermé au public pour le moment

    Problèmes rencontrés :
    Tout d'abord, je vous explique mon problème.
    J'ai transféré toute une base de donnée de Drupal vers Wordpress en opérant de la sorte :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TRUNCATE TABLE tempdb.wp_comments;
    TRUNCATE TABLE tempdb.wp_links;
    TRUNCATE TABLE tempdb.wp_postmeta;
    TRUNCATE TABLE tempdb.wp_posts;
    TRUNCATE TABLE tempdb.wp_term_relationships;
    TRUNCATE TABLE tempdb.wp_term_taxonomy;
    TRUNCATE TABLE tempdb.wp_terms;
    Puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    INSERT INTO tempdb.wp_terms (term_id, `name`, slug, term_group)
    SELECT
     d.tid, d.name, REPLACE(LOWER(d.name), ' ', '-'), 0
    FROM tempdb.term_data d
    INNER JOIN tempdb.term_hierarchy h
     USING(tid)
    ;
     
    INSERT INTO tempdb.wp_term_taxonomy (term_id, taxonomy, description, parent)
    SELECT
     d.tid `term_id`,
     'category' `taxonomy`,
     d.description `description`,
     h.parent `parent`
    FROM tempdb.term_data d
    INNER JOIN tempdb.term_hierarchy h
     USING(tid)
    ;
    Pour importer le contenu des articles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    INSERT INTO
        tempdb.wp_posts (id, post_date, post_content, post_title,
        post_excerpt, post_name, post_modified)
    SELECT DISTINCT
        n.nid, FROM_UNIXTIME(created), body, n.title,
        teaser,
        REPLACE(REPLACE(REPLACE(REPLACE(LOWER(n.title),' ', '-'),'.', '-'),',', '-'),'+', '-'),
        FROM_UNIXTIME(changed)
    FROM tempdb.node n, tempdb.node_revisions r
    WHERE n.vid = r.vid
    Pour récupérer les "relations" entre les articles et les catégories :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO tempdb.wp_term_relationships (object_id, term_taxonomy_id)
    SELECT nid, tid FROM tempdb.term_node;
    Pour mettre à jour le nombre de catégories :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UPDATE wp_term_taxonomy tt
    SET `count` = (
     SELECT COUNT(tr.object_id)
     FROM wp_term_relationships tr
     WHERE tr.term_taxonomy_id = tt.term_taxonomy_id
    );
    Pour garder le statut "non-approuvé" de certains commentaires :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO tempdb.wp_comments (comment_post_ID, comment_date, comment_content, comment_parent, comment_author, comment_author_email, comment_author_url, comment_approved)
    SELECT nid, FROM_UNIXTIME(timestamp), comment, thread, name, mail, homepage, status FROM tempdb.comments;
    Pour mettre à jour les commentaires
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE `wp_posts` SET `comment_count` = (SELECT COUNT(`comment_post_id`) FROM `wp_comments` WHERE `wp_posts`.`id` = `wp_comments`.`comment_post_id`);
    Pour réparer les "ruptures" éventuelles d'articles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE tempdb.wp_posts SET post_content = REPLACE(post_content, '', '');
    Pour actualiser le chemin des fichiers images :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE tempdb.wp_posts SET post_content = REPLACE(post_content, '"/sites/default/files/', '"/wp-content/uploads/');
    - toutes les requêtes ont été bien effectuées.
    - Mais j'ai tout d'abord eu des soucis d'encodage lors de la migration de la table, la casse n'était pas respectée pour les articles (titres et contenus), et pour les noms d'utilisateurs. Comment faire correspondre les champs ? les jeux de caractère ?

    Mes tables SQL :
    ma table wp_posts ressemble à ça :



    et ma table drupal_node_revisions (l'équivalent wp_posts chez drupal) ressemble à ça :


    Ma base My SQL:


    ---

    - Problèmes rencontrés :
    - Lorsque par exemple je veux cliquer sur le nom d'un auteur Caroline DUFON pour avoir accès à la liste de ses posts, ça me fait ça : www.monsite.com/author/Caroline%20DUFON/ et me renvoie vers une erreur 404.
    - Sur un total de 913 posts transférés vers Wordpress, certains n'ont pas été attribués au bon auteur, et environ 300 de ces posts ont été attribués automatiquement à admin.
    - Je souhaiterais gérer les permaliens, de telle manière www.monsite.com/bonjour-a-tous, mais pour le moment je n'ai réussi qu'à faire www.monsite.com/bonjour_a_tous : ou est-ce que je peux modifier pour que le underscore soit un tiret? mod_rewrite?
    - est-ce qu'il y a moyen de faire correspondre les champs multi-auteurs de Drupal à Wordpress? le multi-auteur se présente de la sorte pour drupal dans la BDD SQL :



    Merci de bien vouloir apporter votre contribution, je m'en sors pas décidément...

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 815
    Billets dans le blog
    14
    Par défaut
    Je pense qu'il vaudrait mieux que tu t'adresses à la communauté Wordpress parce que je ne pense pas que ce soit un problème purement MySQL.

    - Mais j'ai tout d'abord eu des soucis d'encodage lors de la migration de la table, la casse n'était pas respectée pour les articles (titres et contenus), et pour les noms d'utilisateurs. Comment faire correspondre les champs ? les jeux de caractère ?
    Voir du côté de la fonction COLLATE.

    - Lorsque par exemple je veux cliquer sur le nom d'un auteur Caroline DUFON pour avoir accès à la liste de ses posts, ça me fait ça : www.monsite.com/author/Caroline%20DUFON/ et me renvoie vers une erreur 404.
    Voir communauté WordPress.

    - Sur un total de 913 posts transférés vers Wordpress, certains n'ont pas été attribués au bon auteur, et environ 300 de ces posts ont été attribués automatiquement à admin.
    Peut-être parce qu'ils n'avaient pas d'auteur référencé dans Drupal ? (je n'ai pas examiné tes requêtes, il y en a beaucoup)
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. [eZ Publish] voie sans issue ?
    Par phoeniix07 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 02/12/2013, 15h44
  2. Erreur ORA-04031 sans issu
    Par ilalaina dans le forum Administration
    Réponses: 25
    Dernier message: 11/12/2007, 15h17
  3. Il existe un nom en double sur le reseau - Sans issue
    Par rpoulin dans le forum Hardware
    Réponses: 4
    Dernier message: 14/02/2007, 09h50
  4. Réponses: 1
    Dernier message: 18/09/2006, 11h53
  5. Réponses: 2
    Dernier message: 06/01/2005, 21h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo