THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

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

Offline

#1 Probleme mise à jour 2.1

(13-01-2015 11:48:10)


J'ai essayé de mettre à jour de 2.0 vers 2.1, et j'ai quelques difficultés ...

Ce que j'ai fait :

  - vidage cache
  - composer create-project thelia/thelia-project path/ 2.1.0
  - cp -f path/* thelia/
  - cd thelia/
  - php Thelia thelia:update

Premier problème : les colonnes version et category manquaient dans la table module (ajouté manuellement pour résoudre)
Second problème : j'ai le message suivant :

[Symfony\Component\DependencyInjection\Exception\InvalidArgumentException]
  The service definition "thelia.parser" does not exist.

Que faut-il faire ?

Offline


Tu es parti de quelle version ?


OpenStudio Toulouse

Offline


2.0.3

Offline

Offline


- Je ne vois pas ce qui a changé ... A la base, c'est pareil qu'avant ?
- Et pour la méthode 'alternative' : le fichier setup/update.php n'existe pas (en faisant php composer.phar create-project ...)
- j'ai aussi essayé avec le 2.1.1 (j'avais pris la 2.1.0 en premier) : c'est pareil ...

Offline


Lis bien jusqu'au bout.


OpenStudio Toulouse

Offline


J'ai bien lu jusqu'au bout ...
La seule différente que je vois, sont les méthodes 'alternatives' si la méthode habituelle échoue

- via le script
  le script n'existe pas comme indiqué + haut
  par contre, j'ai trouvé ce matin un script ./local/setup/update.php, je pense que çà doit être celui-là ?
  si je fais php ./local/setup/update.php , il me met : "No autoload file found. Please use the -b argument to include yours"

  j'ai essayé php local/setup/update.php -b ../../core/vendor/autoload.php, j'ai le message suivant :
     Fatal error: Call to protected method Thelia\Install\Update::isLatestVersion() from context '' in ......local/setup/update.php on line 89
  (si je met la fonction en publique, j'ai encore d'autres erreurs après ...)

- via le wizard
  quand je vais sur l'url, j'ai l'exception suivante :
     AlreadyInstallException: Thelia is already installed
    (in ...../thelia/core/lib/Thelia/Install/BaseInstall.php line 43)


Pas facile de mettre à jour ...

Last edited by griotteau (14-01-2015 09:11:41)

  • manu
  • faï tot petar miladiu

Offline


pourquoi tu as fait un create-project de thelia-project ?

l'architecture de Thelia change avec ce projet, il n'est indiqué nulle part d'utiliser celle là pour mettre à jour thelia.


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


heu, j'ai utilisé celle qui est indiquée un peu partout désormais pour télécharger Thelia (nécessaire pour "copy all files from the thelia new version" ?)

cf http://thelia.net/#download
ou http://doc.thelia.net/en/documentation/ … index.html
ou http://thelia.net/new-project-management-with-thelia/

Sinon, comment télécharger la release 2.1.1 ? la "bonne façon" est de passer par github ?

PS : ah je viens de voir aussi http://doc.thelia.net/en/documentation/ … anced.html
j'ai essayé :
sh change-version.sh 2.1.1
mais j'ai des erreurs, et au final toujours le même message (The service definition "thelia.parser" does not exist)

  • manu
  • faï tot petar miladiu

Offline


il n'est indique que ici (http://thelia.net/new-project-management-with-thelia/) qu'il est possible d'utiliser thelia/thelia-project, partout ailleurs il est indiqué thelia/thelia


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


autant pour moi, je me suis trompé
mais même avec cette url, c'est pareil ...

  composer create-project thelia/thelia path/ 2.1.1
  cp -rf path/* thelia/*
  cd thelia/
  php Thelia update

=> [Symfony\Component\DependencyInjection\Exception\InvalidArgumentException]
  The service definition "thelia.parser" does not exist.

  • manu
  • faï tot petar miladiu

Offline


php Thelia thelia:update n'est plus à utiliser, comme tu l'as vu dans la doc (je vais préciser que ce n'est pas une méthode alternative, c'est mal expliqué visiblement).

Donc en 2.1 c'est php setup/update.php

et bien sur on vide le cache après avec un rm -rf cache/dev cache/prod


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


j'ai lancé le script, çà m'a passé en version 2.1.1 (avec quelques modifs de colonnes dans la BD ...) ... avec au final toujours la même erreur !
The service definition "thelia.parser" does not exist.

  • manu
  • faï tot petar miladiu

Offline


et tu as le module TheliaSmarty ?


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


J'ai bien un repertoire local/modules/TheliaSmarty, avec plein de fichiers dedans

PS : +1 pour le look le forum, çà ressemble plus au reste du site !

  • manu
  • faï tot petar miladiu

Offline


ben soit il n'est pas activé, soit ton cache n'est pas vidé.


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


c'est bon, çà marche ! merci !!

(j'avais déjà la colonne 'category' dans la table module, et du coup la suite du sql ne s'est pas faite
quand j'avais relancé update.php, il a poursuivi à la version d'après ...
Suggestions :
  - mettre le UPDATE `config` SET `value`='2.1.0-alpha2' WHERE `name`='thelia_version'; à la fin du SQL, pas au début
  - faire une transaction pour l'ensemble du fichier sql, pas ligne à ligne
)

  • manu
  • faï tot petar miladiu

Offline


Mysql ne gère pas les transactions sur les "CREATE TABLE" ou "ALTER TABLE" (http://dev.mysql.com/doc/refman/5.5/en/ … ommit.html) du coup pas possible de faire de roll back dans le processus d'update...


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


Bonjour,

Je rebondis sur ce fil pour essayer de comprendre ce que le passage en 2.1 implique.

1/ En terme d'installation  il faut apparemment aller là:
http://doc.thelia.net/en/documentation/ … st-version

Si je suis en 2.0.4, je dois utiliser quoi dans ces 3 méthodes ? Pour moi je dirai la première puisque je suis en 2.0.4 ... mais après lecture de ce fil je ne suis plus si sûr et effectivement, à la réflexion, une fois que j'ai copié tous les fichiers de la nouvelle version, je suis en fait passé en 2.1 ... dans ce cas ça veut dire qu'il faudrait lire la première méthode comme permettant une mise à jour de 2.0.X à 2.0.Y ?

Pour la copie des fichiers, j'ai bien un dossier de template à moi donc j'imagine que ça n'écrase pas ... que dois-je faire des modules additionnels qui ne serait pas compatible ?  dévalider avant ?

2/ pour les templates existantes, ça casse quoi ? que faut-il refaire, sachant que mes templates sont surtout du design, elles ont pour base les templates de defaut. Il y a de gros changements ? des trucs qui ne vont plus marcher ? (en gros si je prend le dossier de template de défaut de la 2.0.4 et que je le mets dans une 2.1, ça marche ?)

Je n'ai pas trouvé de lien qui explique ce qui change et qui serait impactant.

  • manu
  • faï tot petar miladiu

Offline


pierrot wrote:

Bonjour,

Je rebondis sur ce fil pour essayer de comprendre ce que le passage en 2.1 implique.

1/ En terme d'installation  il faut apparemment aller là:
http://doc.thelia.net/en/documentation/ … st-version

Si je suis en 2.0.4, je dois utiliser quoi dans ces 3 méthodes ? Pour moi je dirai la première puisque je suis en 2.0.4 ... mais après lecture de ce fil je ne suis plus si sûr et effectivement, à la réflexion, une fois que j'ai copié tous les fichiers de la nouvelle version, je suis en fait passé en 2.1 ... dans ce cas ça veut dire qu'il faudrait lire la première méthode comme permettant une mise à jour de 2.0.X à 2.0.Y ?


Il faut utiliser la méthode depuis Thelia 2.1, tous tes fichiers sont en 2.1, il faut maintenant mettre à jour la base de données.

pierrot wrote:

Pour la copie des fichiers, j'ai bien un dossier de template à moi donc j'imagine que ça n'écrase pas ... que dois-je faire des modules additionnels qui ne serait pas compatible ?  dévalider avant ?

Oui tu gardes tes templates et tu copies les modules présents dans le nouveau Thelia

pierrot wrote:

2/ pour les templates existantes, ça casse quoi ? que faut-il refaire, sachant que mes templates sont surtout du design, elles ont pour base les templates de defaut. Il y a de gros changements ? des trucs qui ne vont plus marcher ? (en gros si je prend le dossier de template de défaut de la 2.0.4 et que je le mets dans une 2.1, ça marche ?)

Je n'ai pas trouvé de lien qui explique ce qui change et qui serait impactant.

Oui ça marche.

On a rajouté les hooks : http://doc.thelia.net/en/documentation/ … index.html
de mémoire, je ne vois rien qui pourrait bloquer l'utilisation d'une template de la 2.0 dans une 2.1


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


Bonjour,

Bon j'ai finalement réussi à mettre à jour ma 2.0.4 en 2.1.1 après quelques péripéties:
- ma 2.0.4 téléchargée mi-décembre avait 2.0.3 dans la table config/thelia_version , donc la mise à jour essayait d'ugrader ma base en 2.0.4, ce qui capotait rapidement (essayait de créer des colonnes déjà existantes en 2.0.4)
- il faut aussi mettre à jour certains modules qui on une version spécifique 2.0.X comme Freeshipping ou Keywords sinon ça bloque et on a plus accès ni au front ni au back.

Le site semble fonctionner en général mais semble un peu disons buggy ... on se retrouve parfois dans l'interface d'admin au sortir d'une action sur le front ... (bien sûr je suis loggé dans l'admin), on tombe sur une page blanche quand on supprime le dernier produit d'un panier. (testé aussi sur un navigateur nettoyé et non loggé)

Quand j'essaye de changer la quantité dans un panier:
- si pas loggé dans l'admin, page blanche
- si loggé, message d'erreur: "Tried to check a token without assigning it before "

Freeshipping ne semble pas marcher (je suis toujours en franco quelque soit le montant commandé), si je choisi un autre pays pour l'estimation des frais, le cart se réaffiche sans le bas de page ...

Je suis sur un serveur local donc il peut y avoir des réactions légèrement différentes d'un serveur en ligne sur le bon domaine mais bon, je ne suis pas encore sûr de pouvoir faire la bascule en réel avec tous ces problèmes.

Offline


Pages blanche = erreur PHP. Sans les logs d'erreur Apache, on ne pourra rien dire de plus.

le cart se réaffiche sans le bas de page

Idem, erreur PHP. Idem, merci de fournir les erreurs.

Tu peux passer en mode développement (utilises index_dev.php au lieu de index.php, en ajoutant ton adresse IP à la liste qui figure dans index_dev.php), tu verras directement ces erreurs.

Mais bon. A lire tes messages précédents, ta 2.0.4 avait l'air bancale... Mettre la 2.1 dessus (surtout en bidouillant) n'a peut-être pas arrangé les choses.


OpenStudio Toulouse

Offline


Bonsoir,

Je re-précise (for the record comme on dit) que ma 2.0.4 était telle que téléchargée, je n'ai fait que des modifs de design, un chouïa de smarty, ... En j'ai tout écrasé quand j'ai installé la 2.1.1, en dehors de mes templates bien sûr. De plus, une fois que j'ai eu changé 2.0.3 en 2.0.4 dans la base, la mise à jour s'est passée sans un souci, tout au vert. Et tout ça marchait bien avant dans le site 2.0.4.

Par exemple quand je supprime le contenu du panier:

TokenAuthenticationException: Tried to check a token without assigning it before

    in /Users/zapilou/Zap/zapilou_web/alafabrique/public-thelia/core/lib/Thelia/Tools/TokenProvider.php line 110
    at TokenProvider->checkToken(null) in /Users/zapilou/Zap/zapilou_web/alafabrique/public-thelia/local/modules/Front/Controller/CartController.php line 124
    at CartController->deleteItem()
    at call_user_func_array(array(object(CartController), 'deleteItem'), array()) in /Users/zapilou/Zap/zapilou_web/alafabrique/public-thelia/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernel.php line 117
    at HttpKernel->handleRaw(object(Request), '1') in /Users/zapilou/Zap/zapilou_web/alafabrique/public-thelia/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernel.php line 61
    at HttpKernel->handle(object(Request), '1', true) in /Users/zapilou/Zap/zapilou_web/alafabrique/public-thelia/core/lib/Thelia/Core/TheliaHttpKernel.php line 78
    at TheliaHttpKernel->handle(object(Request), '1', true) in /Users/zapilou/Zap/zapilou_web/alafabrique/public-thelia/core/lib/Thelia/Core/Stack/ParamInitMiddleware.php line 86
    at ParamInitMiddleware->handle(object(Request), '1', true) in /Users/zapilou/Zap/zapilou_web/alafabrique/public-thelia/core/lib/Thelia/Core/Stack/SessionMiddleware.php line 80
    at SessionMiddleware->handle(object(Request), '1', true) in /Users/zapilou/Zap/zapilou_web/alafabrique/public-thelia/core/vendor/stack/builder/src/Stack/StackedHttpKernel.php line 23
    at StackedHttpKernel->handle(object(Request), '1', true) in /Users/zapilou/Zap/zapilou_web/alafabrique/public-thelia/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Kernel.php line 187
    at Kernel->handle(object(Request)) in /Users/zapilou/Zap/zapilou_web/alafabrique/public-thelia/web/index_dev.php line 37

Ça fait une erreur du même genre quand je veux changer de quantité.
Pierre.

Offline


Alors, une solution :

En 2.1, la gestion des URLs de mise à jour du panier à changé, un token doit être passé. Pour ce faire, il faut utiliser {token_url ...} au lieu de {url ...} dans ton template pour les cas suivants :

Image%20646.png

Ca devrait résoudre ton problème.


OpenStudio Toulouse

Offline


Bonjour,

Oui effectivement ça résout ces problèmes, donc il y a quand même quelques modifs à faire dans les templates, bon à savoir.

Je teste tout, je vois pour l'instant un souci avec le module FreeShipping. Dès que je l'active, il prend la main complète sur le transport, tout est toujours à 0 Franco de Port sur l'écran cart, que je sois au-dessus ou en-dessous du seuil programmé (ur la page cart avant d'être signé comme client, dans la zone "estimation des frais de port).
Dans le back-office, si je crée plusieurs seuils pour plusieurs zones, impossible ensuite de les effacer, on revient sur le site public direct et rien n'est effacé, j'ai dû supprimer le plugin et le réinstaller pour repartir de 0.
Par contre si je me signe, dès que j'arrive sur la page delivery, là tout d'un coup Colissimo ré-apparait coché avec le bon montant pour mon panier.

Pierre.