gringo1er Posted April 16, 2023 Share Posted April 16, 2023 Bonjour à tous. Après avoir bien fait gaffe à ce que les modules soient à jour, idem pour le template certifié compatible PS8, je me suis lancé dans la migration (sur la préprod, heureusement...). Après une mise à jour heureuse, un vidage du cache, j'ai obtenu une erreur 500 Après avoir activé le débug, je tombe sur une erreur fatale multiple, le texte ci après Fatal error: Uncaught PrestaShopException: La propriété CustomerSession->date_add n'est pas valide. in /home/clients/f2e8e962d55171566d9f94fe442f79af/web/test/classes/ObjectModel.php:1085 Stack trace: #0 /home/clients/f2e8e962d55171566d9f94fe442f79af/web/test/classes/ObjectModel.php(312): ObjectModelCore->validateFields() #1 /home/clients/f2e8e962d55171566d9f94fe442f79af/web/test/classes/ObjectModel.php(793): ObjectModelCore->getFields() #2 /home/clients/f2e8e962d55171566d9f94fe442f79af/web/test/classes/ObjectModel.php(566): ObjectModelCore->update(false) #3 /home/clients/f2e8e962d55171566d9f94fe442f79af/web/test/classes/Cookie.php(574): ObjectModelCore->save() #4 /home/clients/f2e8e962d55171566d9f94fe442f79af/web/test/classes/Cookie.php(542): CookieCore->getSession('5821') #5 /home/clients/f2e8e962d55171566d9f94fe442f79af/web/test/classes/Customer.php(1289): CookieCore->isSessionAlive() #6 /home/clients/f2e8e962d55171566d9f94fe442f79af/web/test/classes/Hook.php(1070): CustomerCore->isLogged() #7 /home/clients/f2e8e962d55171566d9f94fe442f79af/web/test/classes/Hook.php(689): HookCore::getAllHookRegistrations(Object(Context), 'moduleRoutes') #8 /home/clients/f2e8e962d55171566d9f94fe442f79af/web/test/classes/Hook.php(793): HookCore::getHookModuleExecList('moduleRoutes') #9 /home/clients/f2e8e962d55171566d9f94fe442f79af/web/test/classes/Dispatcher.php(586): HookCore::exec('moduleRoutes', Array, NULL, true, false) #10 /home/clients/f2e8e962d55171566d9f94fe442f79af/web/test/classes/Dispatcher.php(243): DispatcherCore->loadRoutes() #11 /home/clients/f2e8e962d55171566d9f94fe442f79af/web/test/classes/Dispatcher.php(201): DispatcherCore->__construct(Object(Symfony\Component\HttpFoundation\Request)) #12 /home/clients/f2e8e962d55171566d9f94fe442f79af/web/test/index.php(28): DispatcherCore::getInstance() #13 {main} thrown in /home/clients/f2e8e962d55171566d9f94fe442f79af/web/test/classes/ObjectModel.php on line 1085 Je n'ai aucune idée de l'origine du souci... Je suis passé sous PHP 8.1 dès migration terminée. En désespoir de cause, je m'en remets aux experts de ce forum... Merci! Link to comment Share on other sites More sharing options...
prestaotop Posted April 16, 2023 Share Posted April 16, 2023 (edited) Bonjour, Vous avez probablement des colonnes manquantes dans votre base de données, en l’occurrence, la colonne « date_add ». Le problème est par conséquent simple, dès qu’un appel est fait en écriture ou en lecture pour ce champ en base de données, un problème survient. Dans votre cas présent, Prestashop essaye d’écrire la date de modification et n’y parvient pas. exemple d’une colonne à ajouter dans une table : `date_add` datetime NOT NULL Reportez-vous sur ce lien qui précise quelles doivent être les colonnes présentes dans les tables : https://github.com/PrestaShop/PrestaShop/blob/8.1.x/install-dev/data/db_structure.sql#L34 Dès lors que vous identifierez la colonne date_add manquant dans une table, alors il faudra l’ajouter à votre table. Si l’on prend la table prefix_address, il faudra rajouter la colonne date_add comme indiqué dans le lien sus-cité. Une fois avoir résolu le problème avec la colonne date_add, vous aurez peut être d’autres erreurs similaires avec des colonnes manquantes. Suivez la même méthode. Avec cette méthode, de vérification des colonnes dans votre base de données Prestashop lors d’une migration, vous avez résolu déjà au moins plus de 50% des problèmes courants. Une raison particulière pourquoi les colonnes n’ont pas été créées via l’usage de one click upgrade ? Ce serait bien trop long à détailler. Alors conservez cette méthode en tête et vous verrez, cela ira de mieux en mieux à l’avenir. PS : dans votre, cas regardez du côté customer ou employee_session. J’espère que la piste proposée sera la bonne. Merci Edited April 16, 2023 by prestaotop (see edit history) Link to comment Share on other sites More sharing options...
gringo1er Posted April 16, 2023 Author Share Posted April 16, 2023 Ah flûte, il y a 52 tables avec ce champs dans la structure de la database... Merci pour la piste Je suppose que je dois vérifier les 52 tables... A moins d'une idée pour trouver les tables concernées? Link to comment Share on other sites More sharing options...
prestaotop Posted April 16, 2023 Share Posted April 16, 2023 (edited) Oui, mince. Ça fait beaucoup. Je vous propose d’étudier ce PR Ensemble : https://github.com/PrestaShop/PrestaShop/pull/21120 Il semblerait que ce soit ici qu’est appelé la partie customer session.Plus que 2 tables à vérifier au lieu de 52 ! Rendez-vous à la fin de ce ticket et vérifiez ou créez la table customer_session et vérifiez aussi la table ps_employee_session: when the employee session is deleted, the employee is disconnected the button Clear outdated sessions works fine ( tested with the request "INSERT INTO ps_employee_session(id_employee_session, id_employee, token, date_add, date_upd) VALUES (NULL, '1', '93716dfd1daea28de7e6fc1f813264af3609d10d', '2019-08-11 14:27:51', '2019-08-11 14:27:51');" in the database ) Customer Sessions (case of visitor, guest, customer): Bulk delete, Pagination, Sort, Search, Delete, Refresh list, Show SQL Query, Export to SQL Manager : OK when the customer session is deleted, the customer is disconnected, the button Clear outdated sessions works fine( tested with the request "INSERT INTO ps_Customer_session(id_Customer_session, id_Customer, token, date_add, date_upd) VALUES (NULL, '1', '93716dfd1daea28de7e6fc1f813264af3609d10d', '2019-08-11 14:27:51', '2019-08-11 14:27:51');" in the database ). C’est bien dans ce fichier que tout se joue : https://github.com/PrestaShop/PrestaShop/pull/21120/files/d4a5cecba5fb380b30d00d1b92f53bd0ce50070f#diff-287f4fcae377e3c781b0242ecc44b8d03740864a0ab661f85ed76bfd760468aa Allez, j’espère que je vous ai indiqué la bonne voie 😀. Dites nous ce que cela donne ! Merci Edited April 16, 2023 by prestaotop (see edit history) Link to comment Share on other sites More sharing options...
gringo1er Posted April 16, 2023 Author Share Posted April 16, 2023 Bon... J'ai parsé toutes les tables. Sur les 2 dernières, les tables date_add et date_upd sont inversés par rapport à la structure théorique. C'est tout ce que j'ai trouvé, le champ date_add est dans toutes les tables. Est-ce que ça peut justifier le souci? Link to comment Share on other sites More sharing options...
prestaotop Posted April 16, 2023 Share Posted April 16, 2023 Non. Pourriez-vous extraire une ligne de la table (anonymisée) customer_session. Le Champ date est-il au bon format ? Quel est le charset de la table ? Link to comment Share on other sites More sharing options...
Mediacom87 Posted April 16, 2023 Share Posted April 16, 2023 Bonjour, vous avez fait une migration vers la 8.0.2 alors que la 8.0.3 est disponible depuis plusieurs jours, peut-être qu'un nouvel essaie sur cette version corrigerait le problème rencontré. Link to comment Share on other sites More sharing options...
gringo1er Posted April 17, 2023 Author Share Posted April 17, 2023 21 hours ago, prestaotop said: Non. Pourriez-vous extraire une ligne de la table (anonymisée) customer_session. Le Champ date est-il au bon format ? Quel est le charset de la table ? Hello. Hier soir j'ai eu les yeux qui tombaient, je ne réponds que maintenant. Voici 3 copies d'écran. A croire qu'il y a un souci dans la migration de la table vers PS8, non? Même pas besoin d'anonymiser Link to comment Share on other sites More sharing options...
gringo1er Posted April 17, 2023 Author Share Posted April 17, 2023 (edited) 21 hours ago, Mediacom87 said: Bonjour, vous avez fait une migration vers la 8.0.2 alors que la 8.0.3 est disponible depuis plusieurs jours, peut-être qu'un nouvel essaie sur cette version corrigerait le problème rencontré. Quand mon met à jour avec le one-clic button oui, quand on va sur prestashop.com c'est la version 8.0.2 qui est proposée. Et j'ai finalement le même souci dans l'un comme dans l'autre. Edited April 17, 2023 by gringo1er oubli d'une précision (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now