web-dev-qa-db-fra.com

Joomla 3.6 Comment migrer des données de répétables en sous-formulaires

Le nouveau sous-formulaire de type de champ ne récupère pas les anciennes données pouvant être répétées, même les champs portent les mêmes noms. J'ai créé de nombreux messages avec répétable. Les données sont stockées dans des champs supplémentaires de com_conent. attribue exactement la colonne.

Ceci est la structure de tous mes données répétables champ obsolète

"image_gallery":"{\"image\":[\"images\/portfolio\/default\/web\/web_01.jpg\",\"images\/portfolio\/default\/web\/web_02.jpg\"],\"image_alt\":[\"\",\"\"]}"

C'est la structure du nouveau champ de sous-formulaire avec les mêmes données.

"image_gallery":{"image_gallery0":{"image":"images\/portfolio\/default\/web\/web_01.jpg","image_alt":""},"image_gallery1":{"image":"images\/portfolio\/default\/web\/web_02.jpg","image_alt":""}}

Question: Comment puis-je faire une requête SQL pour modifier les anciennes données à mettre à niveau vers la nouvelle structure.

S'il vous plaît j'ai besoin d'une requête d'un script ou quoi que ce soit pour mettre à jour ces données. Merci d'avance.

5
Leoalv

Je ne vous recommande pas de traiter ces données avec une requête SQL. Ce n'est pas pare-balles et vous n'avez pas d'outils pour valider les données. Pourquoi? Vous devez travailler strictement sur des chaînes pouvant entraîner des données erronées. Sans compter que créer et tester une requête appropriée prendrait des siècles.

Solution

Ce que je recommanderais est de le faire via CLI Joomla! application . Vous allez avoir accès à la Joomla! cadre et vous pouvez utiliser toutes sortes de Joomla! tables et modèles pour valider/traiter les données. Vous pourrez également vérifier si les données ne sont pas cassées. Bien sûr, vous devriez le faire sur la copie du site Web ou au moins avoir une sauvegarde de votre base de données. Si vous préférez, vous pouvez également forcer l'application CLI à fonctionner à partir d'un navigateur.

Exemple d'application CLI

Pour des exemples, vous pouvez regarder dans /cli répertoire à l'intérieur de votre Joomla! installation ou ici: https://github.com/joomla/joomla-cms/blob/staging/cli/garbagecron.php

1
Artur Stępień