logo de Nixa

Développement numérique
Application, Web, Logiciel

Technologies
Transformation numérique
Services
Red Cross Button
Fermer ce menu
Technologies
python-icon.original

Python

Django, Flask

Wagtail, Django CMS, CKAN

php-icon.original

PHP

Laravel, Symfony

Magento, Opencart

Wordpress, Drupal, Joomla

js-icon.original

Javascript

React, Angular, Vue.js, Node.js

android-icon.original

Android

Java

Ionic, Cordova

apple-icon.original

IOS

Swift, Objective C

Transformation numérique

Traitement des données médicales

Numérisation du commerce de détail

Main d'œuvre de programmation

Du nouveau chez Nixa

Parce qu'on s'amuse et qu'on apprend plein de truc, on a envie de vous les partager ❤️

image-header-hero-1
image-header-hero-2
image-header-hero-3
Software development
image-header-hero-5
image-header-hero-6

Migrez vos données Wordpress efficacement

La migration de données depuis un site existant est l’une des tâches les plus complexes qu’implique une refonte de site web mais cela ne ternit en aucun cas son bien-fondé.

Quand on renouvelle un design, c’est le bon moment pour revoir les fonctionnements internes d'un site afin d’en réduire le temps de réponse. Il est donc fréquent que le service de base de données change (backend) ou que l’ancien site use de différentes sources de données que l’on désire regrouper sous un même service de base de données. Tout ce qui résultera de ce processus d’analyse est d’une pertinence indéfectible, car cela constituera la fondation de notre projet. Plusieurs obstacles obstrueront probablement notre périple vers l'achèvement de notre quête, mais il faut toujours garder en tête qu'il y a une solution à chaque problème.

La première épreuve que l’on peut rencontrer est la différence de technologie entre la source et la destination. À ce moment, il est indispensable d’avoir un accès direct à la source des données, car cela diminue les erreurs de transfert. Par exemple, si l’on migre depuis un site WordPress, il faut éviter d’utiliser les extensions (plugins), car elles fournissent souvent des données incomplètes dans des formats peu malléables (xml, csv). De la sorte, l’utilisation de phpMyAdmin ou d’une interface semblable, est souhaitée de par son intelligibilité et par la possibilité d’extraire directement les données pertinentes avec des requêtes MySQL.

Dans le cas où notre source n’est pas MySQL, et si on le désire, il est possible d’utiliser MySQL WorkBench pour effectuer des migrations depuis différents types de base de données, tel que MsSQL ou postgresql. Attention, c’est une solution fastidieuse qui implique de supprimer des relations entre les tables et où l’on peut rencontrer certaines erreurs de format, notamment sur les timestamp.

À partir du moment où l'on a accès à une base de données stable et avant de passer à la migration comme telle, il nous faut nous assurer une récupération de données efficace. Le framework Django propose une solution à ce problème en générant des modèles automatiquement à partir d'une source de données compatible (MySQL, postgreSQL...). Ainsi, pour effectuer la migration des données, il s'agira de communiquer entre des modèles temporaires et finaux, mais du même type, ce qui facilitera nettement le processus.

La récupération de données étant faîte, on peut passer à la migration comme telle. Toutefois, avant de commencer à programmer, il est adéquat de bien planifier nos étapes de migrations, d’évaluer la possibilité d’optimiser le modèle relationnel de la base de données et de projeter une structure de programmation flexible. Dans ce but, il est souhaitable d’adopter une attitude de développement piloté par les tests. Le test-driven developper morcelle son programme en de petites méthodes qui sont facilement testables dans le but de maintenir aisément un programme, d’insérer facilement des ajustements à la procédure générale, de permettre une réutilisation du code, etc.

Lors de la migration des données, il peut arriver que l’on transfère des contenus HTML utilisés dans un éditeur de texte (wysiwyg). Cela peut causer de nombreux problèmes qui demanderont de traiter des textes de grande dimension. Par exemple, il pourrait y avoir des liens que vous voudriez changer ou encore des balises html à remettre sur le contenu de votre champs. Pour remédier à cette situation, la meilleure solution est l'utilisation d'expressions régulières pour extraire, remplacer, supprimer des éléments d'une chaîne html. De plus, il existe en python une classe - HtmlParser - qui utilise les regex pour boucler toutes les balises du contenu d'une chaîne html.

Cela améliore nettement la reconnaissance des éléments à modifier. Par contre, ce processus est très gourmand en mémoire, il ralentira assurément votre programme.

Les quelques obstacles mentionnés ci-haut ne sont que la pointe de l'iceberg, néanmoins la plupart peuvent être écartés par une analyse précise des exigences de notre tâche et de notre modèle relationnel. Évidemment, l'expérience que l'on acquiert à chaque itération nous permet de développer des outils qui nous rendent de plus en plus efficace.

Chez Nixa, nous avons déjà amassé des munitions pour effectuer ce genre de tâche. Notre arsenal nous permet d'optimiser les bases de données pour améliorer la vitesse d'un site web. Parce qu'après tout la gestion de la base de données représente la racine d'un site web et détermine l'efficacité de ce dernier.

CHEZ NIXA, NOUS SOMMES PASSIONNÉS PAR LE DESIGN ET LES NOUVELLES TECHNOLOGIES. NOUS SERIONS HEUREUX DE PARTAGER NOTRE PASSION AVEC VOUS.

Contactez-nous