THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


roadster31 wrote:

Il faut que
1) tu restrore ta 2.2.0 ET la base de données qui va avec,
2) que tu crée la foreign key (le sql que je t'ai donné),
3) ENSUITE seulement tu lances ta mise à jour.

C'est exactement ce que j'ai fait..... mais comme je le fais par étapes, histoire de pas tout recommencer, j'ai pris un 2.2.5 pour valider d'abord cette étape.

La mise à jour est nickel pour passer cette première étape jusqu'en 2.2.5. C'est après que ça se corse, impossible d'aller sur la suite en 2.3.XXX.

Je me retrouve si je ne modifie pas ma base de donnée avec ce code d'erreur :

Désolé, une erreur inattendue s'est produite: Failed to execute SQL ' INSERT INTO `hook` (`id`, `code`, `type`, `by_module`, `block`, `native`, `activate`, `position`, `created_at`, `updated_at`) VALUES (@max_id+1, 'sale.top', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+2, 'sale.bottom', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+3, 'sale.main-top', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+4, 'sale.main-bottom', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+5, 'sale.content-top', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+6, 'sale.content-bottom', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+7, 'sale.stylesheet', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+8, 'sale.after-javascript-include', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+9, 'sale.javascript-initialization', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+10, 'account-order.invoice-address-bottom', 1, 1, 0, 1, 1, 1, NOW(), NOW()), (@max_id+11, 'account-order.delivery-address-bottom', 1, 1, 0, 1, 1, 1, NOW(), NOW()), (@max_id+12, 'newsletter-unsubscribe.top', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+13, 'newsletter-unsubscribe.bottom', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+14, 'newsletter-unsubscribe.stylesheet', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+15, 'newsletter-unsubscribe.after-javascript-include', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+16, 'newsletter-unsubscribe.javascript-initialization', 1, 0, 0, 1, 1, 1, NOW(), NOW()) ', arguments:Array ( ) , error:Array ( [0] => 23000 [1] => 1062 [2] => Duplicate entry 'sale.top-1' for key 'code_UNIQUE' ) 
Détails:
#0 /home/lavachesmj/web/install/updater.php(85): Thelia\Install\Update->process()
#1 {main}
Processus de mise à jour
mise à jour vers la version 2.2.2
mise à jour vers la version 2.2.3
mise à jour vers la version 2.2.4
mise à jour vers la version 2.2.5
mise à jour vers la version 2.2.6
mise à jour vers la version 2.3.0-alpha1
mise à jour vers la version 2.3.0-alpha2
Trace du processus de mise à jour.
[debug] start update process
[debug] inserting file 2.2.2.sql
[debug] end inserting file 2.2.2.sql
[debug] inserting file 2.2.3.sql
[debug] end inserting file 2.2.3.sql
[debug] inserting file 2.2.4.sql
[debug] end inserting file 2.2.4.sql
[debug] inserting file 2.2.5.sql
[debug] end inserting file 2.2.5.sql
[debug] inserting file 2.2.6.sql
[debug] end inserting file 2.2.6.sql
[debug] inserting file 2.3.0-alpha1.sql
[debug] end inserting file 2.3.0-alpha1.sql
[debug] inserting file 2.3.0-alpha2.sql
[error] error during update process with message : Failed to execute SQL ' INSERT INTO `hook` (`id`, `code`, `type`, `by_module`, `block`, `native`, `activate`, `position`, `created_at`, `updated_at`) VALUES (@max_id+1, 'sale.top', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+2, 'sale.bottom', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+3, 'sale.main-top', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+4, 'sale.main-bottom', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+5, 'sale.content-top', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+6, 'sale.content-bottom', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+7, 'sale.stylesheet', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+8, 'sale.after-javascript-include', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+9, 'sale.javascript-initialization', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+10, 'account-order.invoice-address-bottom', 1, 1, 0, 1, 1, 1, NOW(), NOW()), (@max_id+11, 'account-order.delivery-address-bottom', 1, 1, 0, 1, 1, 1, NOW(), NOW()), (@max_id+12, 'newsletter-unsubscribe.top', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+13, 'newsletter-unsubscribe.bottom', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+14, 'newsletter-unsubscribe.stylesheet', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+15, 'newsletter-unsubscribe.after-javascript-include', 1, 0, 0, 1, 1, 1, NOW(), NOW()), (@max_id+16, 'newsletter-unsubscribe.javascript-initialization', 1, 0, 0, 1, 1, 1, NOW(), NOW()) ', arguments:Array ( ) , error:Array ( [0] => 23000 [1] => 1062 [2] => Duplicate entry 'sale.top-1' for key 'code_UNIQUE' ) 

Pour parer ce soucis, je suis allé dans Hook et je me suis rendu compte que j'avais ceci  (surement hérité d'un soucis lors d'une précédente tentative de mise à jour l'an dernier...)

dd1f.png

J'ai donc manuellement supprimé les entrées que je vois dans le 2.3.0 alpha2.sql :

INSERT INTO `hook` (`id`, `code`, `type`, `by_module`, `block`, `native`, `activate`, `position`, `created_at`, `updated_at`) VALUES
    (@max_id+1, 'sale.top', 1, 0, 0, 1, 1, 1, NOW(), NOW()),
    (@max_id+2, 'sale.bottom', 1, 0, 0, 1, 1, 1, NOW(), NOW()),
    (@max_id+3, 'sale.main-top', 1, 0, 0, 1, 1, 1, NOW(), NOW()),
    (@max_id+4, 'sale.main-bottom', 1, 0, 0, 1, 1, 1, NOW(), NOW()),
    (@max_id+5, 'sale.content-top', 1, 0, 0, 1, 1, 1, NOW(), NOW()),
    (@max_id+6, 'sale.content-bottom', 1, 0, 0, 1, 1, 1, NOW(), NOW()),
    (@max_id+7, 'sale.stylesheet', 1, 0, 0, 1, 1, 1, NOW(), NOW()),
    (@max_id+8, 'sale.after-javascript-include', 1, 0, 0, 1, 1, 1, NOW(), NOW()),
    (@max_id+9, 'sale.javascript-initialization', 1, 0, 0, 1, 1, 1, NOW(), NOW()),
    (@max_id+10, 'account-order.invoice-address-bottom', 1, 1, 0, 1, 1, 1, NOW(), NOW()),
    (@max_id+11, 'account-order.delivery-address-bottom', 1, 1, 0, 1, 1, 1, NOW(), NOW()),
    (@max_id+12, 'newsletter-unsubscribe.top', 1, 0, 0, 1, 1, 1, NOW(), NOW()),
    (@max_id+13, 'newsletter-unsubscribe.bottom', 1, 0, 0, 1, 1, 1, NOW(), NOW()),
    (@max_id+14, 'newsletter-unsubscribe.stylesheet', 1, 0, 0, 1, 1, 1, NOW(), NOW()),
    (@max_id+15, 'newsletter-unsubscribe.after-javascript-include', 1, 0, 0, 1, 1, 1, NOW(), NOW()),
    (@max_id+16, 'newsletter-unsubscribe.javascript-initialization', 1, 0, 0, 1, 1, 1, NOW(), NOW())
;

Quand je lance du coup la MAJ vers 2.3.5 en mes ayant supprimés, je me retrouve avec une nouvelle erreur même code cette fois ci avec Hookadmin home dans Modules que je supprimes également manuellement ( mais comme je le sais, j'ai supprimé préalablement avant les entrées dans hook et modules.

La mise a jour va au bout mais ensuite, rien n'est fonctionnel, ni BO ni site. Du coup je pense que je suis proche de la solution mais que la méthode d'execution en cliquant sur supprimer sur ces sale.top etc n'est pas la bonne et qu'il faut le faire d'une autre manière.

Merci. Je suis maintenant revenu à ma 2.2.0 et ma base de donnée qui va avec et j'ai refait la modification comme tu me l'as dis de faire des 4 foreign keys qui manquent.

je me retrouve donc avec une base comme ça, ais je bon ou il fat supprimer les idx ?

4k6g.png

Mais j'attend une idée pour aller plus loin que 2.2.5 pour lancer la mise à jour.

Last edited by lavache (24-01-2020 18:36:27)

Offline

Offline


Je relance donc une mise à jour vers  2.2.5 mais pour la suite vers 2.3.xx je n'ai pas réellement de solution viable. As tu une idée ?

Merci

Offline


Si ta base en 2.2 n'est pas standard, non, aucune idée, mis à part la remettre au standard.


OpenStudio Toulouse

Offline


Et du coup... Sais tu comment la remettre standard ?
Sachant que je n'ai rien modifié manuellement dessus, juste une mise a jour qui avait foirre il y a un certain temps et j'avais du mal remettre en place ..

Merci

Last edited by lavache (26-01-2020 16:21:24)

Offline


Comparer un export de la structure d'une base standard avec l'export de la structure de ta base (en faisant abstraction des modules).


OpenStudio Toulouse

Offline


Très bien, mais encore ?

Il y a un script / logiciel pour ça ? Ou il faut que je fasse un export et que je lise toutes les lignes dans un bloc note ?

Offline


Tu peux utiliser phpMyAdmin pour cela.
Après avoir sélectionner ta base clique sur Exporter ensuite
> Méthode d'exportation : personnalisée
> Format : SQL; décocher la colonne : données
> Sortie : Enregistre la sortie vers un fichier

Procèdes de même pour ta seconde base.

Tu peux ensuite utiliser ton éditeur de code pour ouvrir les 2 fichiers en mode dif ou compare. Notepad++ propose cette fonction via un plugin je crois;
Visual Studio code via le menu contextuel Sélectionner pour comparer et Comparer avec ce qui est sélectionné

Offline


Nog wrote:

Tu peux utiliser phpMyAdmin pour cela.
Après avoir sélectionner ta base clique sur Exporter ensuite
> Méthode d'exportation : personnalisée
> Format : SQL; décocher la colonne : données
> Sortie : Enregistre la sortie vers un fichier

Procèdes de même pour ta seconde base.

Tu peux ensuite utiliser ton éditeur de code pour ouvrir les 2 fichiers en mode dif ou compare. Notepad++ propose cette fonction via un plugin je crois;
Visual Studio code via le menu contextuel Sélectionner pour comparer et Comparer avec ce qui est sélectionné

Top ! Merci !

Reste plus qu'à trouver ne base de donnée 2,2,5 vierge.... et je rame.. si quelqu'un a un lien ?

Merci

Offline


Les releases de Thelia sont disponibles sur Github, la 2.2.5 est ici

Offline


Ca je sais, mais ça veut dire réinstaller une complete pour qu'il créé cette base de donnée ? ce que je cherche c'est un .sql simple, non ?

Offline


Une idée ? Ou sinon une idée pour importer depuis une installation vierge en 2.3.5 mon fichier clients et commandes ?