Archives de la liste h​e​b​e​r​g​e​m​e​n​t​@p​a​h​e​k​o​.c​l​o​u​d​

Cannot assign null to property in .../include/lib/KD2/DB/AbstractEntity.php:146

chouchou

13/12/2023 19:26:57

Salut !

maintenant que le problème de hash est réglé, je bute sur le même 
problème qu'avant la mise à jour, à savoir :

TypeError
Cannot assign null to property Paheko\Config::$analytical_set_all of 
type bool

je colle le message d'erreur complet (moins les ips et adresses mails) 
là-dessous, je panne rien :

TypeError
Cannot assign null to property Paheko\Config::$analytical_set_all of 
type bool
in .../include/lib/KD2/DB/AbstractEntity.php:146

142			elseif (is_string($value) && !$prop->string) {
143				$value = $this->transformValue($name, $value);
144			}
145
146			$this->$name = $value;
147		}
148
149		return $this;
150	}

in .../include/lib/Paheko/Config.php:182
→ KD2\DB\AbstractEntity->load (1 arg.)
$data	

array(22) {
   ["org_name"]=> string(7) "XXXXXX"
   ["org_infos"]=> NULL
   ["org_email"]=> string(26) "XXXXXXXXXX@XXXXX.XXX"
   ["org_address"]=> NULL
   ["org_phone"]=> NULL
   ["org_web"]=> NULL
   ["currency"]=> string(3) "€"
   ["country"]=> string(2) "FR"
   ["default_category"]=> string(1) "1"
   ["backup_frequency"]=> NULL
   ["backup_limit"]=> NULL
   ["last_chart_change"]=> string(10) "1671300428"
   ["last_version_check"]=> NULL
   ["color1"]=> NULL
   ["color2"]=> NULL
   ["files"]=> string(126) 
"{"admin_background":null,"admin_homepage":1661463072,"admin_css":null,"logo":null,"icon":null,"favicon":null,"signature":null}"
   ["site_disabled"]=> string(1) "1"
   ["log_retention"]=> string(3) "365"
   ["analytical_set_all"]=> NULL
   ["file_versioning_policy"]=> string(4) "none"
   ["file_versioning_max_size"]=> string(1) "5"
   ["auto_logout"]=> NULL
   }

178				continue;
179			}
180		}
181
182		$this->load($config);
183	}
184
185	public function setCreateFlag(): void
186	{

in .../include/lib/Paheko/Config.php:146
→ Paheko\Config->__construct (0 arg.)

142	static protected $_instance = null;
143
144	static public function getInstance()
145	{
146		return self::$_instance ?: self::$_instance = new self;
147	}
148
149	static public function deleteInstance()
150	{

in .../include/lib/Paheko/Template.php:121
→ Paheko\Config::getInstance (0 arg.)

117		$session = null;
118
119		if (!defined('Paheko\INSTALL_PROCESS')) {
120			$session = Session::getInstance();
121			$this->assign('config', Config::getInstance());
122		}
123		else {
124			$this->assign('config', null);
125		}

in .../include/lib/Paheko/Template.php:23
→ Paheko\Template->__construct (0 arg.)

19	static protected $_instance = null;
20
21	static public function getInstance()
22	{
23		return self::$_instance ?: self::$_instance = new Template;
24	}
25
26	public function display($template = null)
27	{

in .../www/admin/_inc.php:19
→ Paheko\Template::getInstance (0 arg.)

15{
16	return isset($_GET[$key]) ? $_GET[$key] : null;
17}
18
19$tpl = Template::getInstance();
20
21$form = new Form;
22$tpl->assign_by_ref('form', $form);
23

in .../www/admin/index.php:12
→ require_once (1 arg.)
0	

string(22) ".../www/admin/_inc.php"

8use Paheko\Entities\Files\File;
9use Paheko\Extensions;
10use Paheko\Plugins;
11
12require_once __DIR__ . '/_inc.php';
13
14$session = Session::getInstance();
15
16$banner = '';

Context
date	2023-12-13T19:13:06+01:00
duration	12.797832489014
environment	development
hostname	mondomaineamoi.com
http_files	array(0) { }
http_method	GET
http_post	array(0) { }
http_user_agent	Mozilla/5.0 (X11; Linux x86_64; rv:120.0) Gecko/20100101 
Firefox/120.0
id	3otztyfy
language	PHP 8.2.13
memory_peak	2097152
memory_used	2097152
os	Linux
paheko_data_root	/home/yunohost.app/paheko/data
paheko_version	1.3.4
php_sapi	fpm-fcgi
remote_ip	X.X.X.X
root_directory	/var/www/paheko
server_addr	X.X.X.X
user_addr	X.X.X.X
url	https://mondomaineamoi.com/paheko/admin/

Cannot assign null to property in .../include/lib/KD2/DB/AbstractEntity.php:146

BohwaZ/Paheko

13/12/2023 20:44:54

C'est qu'il te manque la mise à jour 1.1.31 à nouveau, il faut refaire
les mises à jour depuis ce moment-là je pense ?

Cannot assign null to property in .../include/lib/KD2/DB/AbstractEntity.php:146

benoit at friry.net via hebergement

30/12/2023 11:30:14

Bonjour,

Même erreur ici. Chez OVH, en principe en v1.2.11.
J'ai essayé de migrer en 1.3.5 ou en 1.3.0 => même comportement.
J'ai essayé via la màj en ligne ou avec le tar + sqlite dans data. Pas 
mieux.

Je dois faire une restauration du répertoire pour reprendre la main.

Le 13/12/2023 à 20:44, BohwaZ/Paheko a écrit :
 > C'est qu'il te manque la mise à jour 1.1.31 à nouveau, il faut
refaire
 > les mises à jour depuis ce moment-là je pense ?

Je ne sais pas si le problème peut être le même, mais veux bien essayer 
de repasser des màj, mais je ne sais pas comment !

Merci,
Benoit

Cannot assign null to property in .../include/lib/KD2/DB/AbstractEntity.php:146

BohwaZ/Paheko

30/12/2023 14:02:26

Il te manque la mise à jour 1.1.31 au moins, peut-être d'autres.

Je te suggère donc de reprendre la sauvegarde faite avant la 1.1.31 et
de recommencer à partir de cette sauvegarde.

Si tu as fait des modifs depuis cette mise à jour, essaye de modifier
ta base de données pour forcer les mises à jour :

UPDATE config SET value = '1.1.30' WHERE key = 'version';

Cannot assign null to property in .../include/lib/KD2/DB/AbstractEntity.php:146

benoit at friry.net via hebergement

30/12/2023 18:11:05

Euh... Je n'ai pas de clé "version" dans ma table config !

J'ai tenté un insert into config values ('version', '1.1.30'),
mais 
j'obtiens l'erreur RuntimeException "version" is not a property of the

entity "Garradin\Config".

Par acquis de conscience, je viens de comparer mon arborescence en prod 
et celle de l'archive paheko-1.2.11.tar.gz : les seules différences sont 
la présence en prod d'un config.local.php à la racine et de donnée dans 
/data.

J'ai aussi essayé de mettre mon répertoire /data sur une extraction 
fraîche de paheko-1.3.5.tar.gz, en ajoutant la config ('version', 
'1.1.30'), mais j'ai la même erreur RuntimeException "version"
is not a 
property of the entity "Paheko\Config". (*Paheko* cette fois).

Mon installation date de mars 2022 (en 1.1.23 ?), et la plus ancienne 
sauvegarde est une "pre-upgrade-1.2.6" faite en février 2023. Je ne 
crois pas que j'avais fait des màj régulières avant ça. Je suis en 
1.2.11 depuis mi-septembre. Et bien-sûr, j'ai foultitude d'écritures et 
d'activité depuis tout ce temps !  :-/

Merci

Le 30/12/2023 à 14:02, BohwaZ/Paheko a écrit :
> Il te manque la mise à jour 1.1.31 au moins, peut-être d'autres.
> 
> Je te suggère donc de reprendre la sauvegarde faite avant la 1.1.31 et
> de recommencer à partir de cette sauvegarde.
> 
> Si tu as fait des modifs depuis cette mise à jour, essaye de modifier
> ta base de données pour forcer les mises à jour :
> 
> UPDATE config SET value = '1.1.30' WHERE key = 'version';
>

Cannot assign null to property in .../include/lib/KD2/DB/AbstractEntity.php:146

BohwaZ/Paheko

30/12/2023 18:21:27

Ah oui pardon, ça a changé :)

PRAGMA user_version = 1013000;

Cannot assign null to property in .../include/lib/KD2/DB/AbstractEntity.php:146

benoit at friry.net via hebergement

30/12/2023 18:50:43

Le 30/12/2023 à 18:21, BohwaZ/Paheko a écrit :
> Ah oui pardon, ça a changé :)
> 
> PRAGMA user_version = 1013000;

Maintenant, j'ai l'erreur suivante :
Exception Error in '1.2.0.sql': table acc_accounts has 9 columns but 10 
values were supplied
INSERT INTO acc_accounts SELECT *, CASE WHEN type > 0 AND type <= 8 THEN 
1 ELSE 0 END FROM acc_accounts_old;

Est-ce qu'une solution ne serait pas de passer les commandes des 
fichiers ".sql" dans include/migrations/ une par une ? (si c'est ce que 
les scripts de migration sont censés faire automatiquement).

Laborieux, mais ça pourrait permettre de mieux comprendre ce qui se 
passe... Je suis apparemment dans une situation bancale... :-/

Merci

Cannot assign null to property in .../include/lib/KD2/DB/AbstractEntity.php:146

BohwaZ/Paheko

30/12/2023 23:06:21

> Est-ce qu'une solution ne serait pas de passer les commandes des 
> fichiers ".sql" dans include/migrations/ une par une ? (si c'est
ce
> que les scripts de migration sont censés faire automatiquement).

C'est exactement ce que ça fait de changer user_version, ça dit que ta
base de données et en version 1.1.30, et donc toutes les migrations
sont relancées.

Certaines migrations nécessitent du code PHP également, tout est dans
include/lib/Paheko/Upgrade.php

Donc tu peux essayer ça oui, car je ne sais pas quelles migrations il
te manque, car tu es dans un état particulièrement étrange, il faudrait
à mon avis comparer la structure des tables entre ta version, et la
même version en installation vierge, voir ce qui te manque :)

(Et le contenu de la table config aussi)

Cannot assign null to property in .../include/lib/KD2/DB/AbstractEntity.php:146

benoit at friry.net via hebergement

14/01/2024 20:37:54

Bonsoir,

> Donc tu peux essayer ça oui, car je ne sais pas quelles migrations il
> te manque, car tu es dans un état particulièrement étrange, il faudrait
> à mon avis comparer la structure des tables entre ta version, et la
> même version en installation vierge, voir ce qui te manque :)
> 
> (Et le contenu de la table config aussi)

Je me suis retroussé les manches, et j'ai regardé : diff du schéma et de 
la table config entre ma base et une base vierge en 1.2.11 (juste une 
1re connexion pour créer la table "membres").

Le schéma
---------

$ diff --ignore-blank-lines prod.schema.sql vide.schema.sql

234c246
< CREATE TABLE IF NOT EXISTS "membres"
---
 > CREATE TABLE IF NOT EXISTS membres
244a257
 >       "passe" TEXT COLLATE U_NOCASE,
250,252c263
<       "date_naissance" TEXT COLLATE U_NOCASE, -- Date de naissance
<       "num_licence" INTEGER, -- Numéro de licence
<       "passe" TEXT COLLATE U_NOCASE
---
 >       "lettre_infos" INTEGER -- Inscription à la lettre
d'information
514c528
< :
---
 >
519c533
< CREATE INDEX IF NOT EXISTS users_list_code_postal ON membres 
(id_category, code_postal COLLATE U_NOCASE);
---
 > CREATE INDEX IF NOT EXISTS users_list_code_postal ON membres 
(id_category, "code_postal" COLLATE U_NOCASE);
522c536
< CREATE INDEX IF NOT EXISTS users_list_nom ON membres (id_category, nom 
COLLATE U_NOCASE);
---
 > CREATE INDEX IF NOT EXISTS users_list_nom ON membres (id_category, 
"nom" COLLATE U_NOCASE);
525c539
< CREATE INDEX IF NOT EXISTS users_list_numero ON membres (id_category, 
numero);
---
 > CREATE INDEX IF NOT EXISTS users_list_numero ON membres (id_category, 
"numero");
528c542
< CREATE INDEX IF NOT EXISTS users_list_ville ON membres (id_category, 
ville COLLATE U_NOCASE);
---
 > CREATE INDEX IF NOT EXISTS users_list_ville ON membres (id_category, 
"ville" COLLATE U_NOCASE);


Le ":" apparaît dans ma base de prod juste après la ligne
CREATE INDEX IF NOT EXISTS users_category ON membres (id_category);

=> Je vois le champ lettre_infos en écart, mais ça me semble mineur par 
rapport à l'interface qui explose ! Les guillemets sont étonnants, mais 
cela ne devrait pas gêner.

La config
---------

$ diff --ignore-blank-lines prod.sql vide.sql|grep "INSERT INTO config" 
-A1 -B1

14420c1541,1543
< INSERT INTO config (key, value) VALUES ('nom_asso', 'Tenchi');
---
 > INSERT INTO config (key, value) VALUES ('last_chart_change', 
'1705258966');
 > INSERT INTO config (key, value) VALUES ('nom_asso',
'test');
 > INSERT INTO config (key, value) VALUES ('email_asso', 
'benoit@friry.net');
14423,14432d1545
< INSERT INTO config (key, value) VALUES ('categorie_membres',
'1');
< INSERT INTO config (key, value) VALUES ('champ_identifiant',
'email');
< INSERT INTO config (key, value) VALUES ('champ_identite', 'nom');
< INSERT INTO config (key, value) VALUES ('site_disabled', '1');
< INSERT INTO config (key, value) VALUES ('adresse_asso', '25 boulevard 
de Strasbourg');
< INSERT INTO config (key, value) VALUES ('email_asso', 
'tenchi@aikido-paris.org');
< INSERT INTO config (key, value) VALUES ('site_asso', 
'https://www.aikido-paris.org');
< INSERT INTO config (key, value) VALUES ('couleur1', '#b40000');
< INSERT INTO config (key, value) VALUES ('couleur2', '#dcdcdc');
< INSERT INTO config (key, value) VALUES ('files', 
'{"admin_background":1647769222,"admin_homepage":1647769363,"admin_css":null,"logo":1647769306,"icon":1647768936,"favicon":1647768915}');
14437,14438d1549

Cannot assign null to property in .../include/lib/KD2/DB/AbstractEntity.php:146

benoit at friry.net via hebergement

20/02/2024 16:53:18

Bonjour,

J'ai enfin réussi à mettre à jour mon instance. La solution était 
finalement simple : ajouter une ligne à la table config : 
key=analytical_set_all, value=1. Avec ça, la migration est passée toute 
seule. Mais je ne sais pas dire pourquoi je n'avais pas cette ligne avant.

Benoit

Le 14/01/2024 à 20:37, benoit at friry.net via hebergement a écrit :
> Bonsoir,
>
>> Donc tu peux essayer ça oui, car je ne sais pas quelles migrations il
>> te manque, car tu es dans un état particulièrement étrange, il faudrait
>> à mon avis comparer la structure des tables entre ta version, et la
>> même version en installation vierge, voir ce qui te manque :)
>>
>> (Et le contenu de la table config aussi)
> Je me suis retroussé les manches, et j'ai regardé : diff du schéma et
de
> la table config entre ma base et une base vierge en 1.2.11 (juste une
> 1re connexion pour créer la table "membres").
>
> Le schéma
> ---------
>
> $ diff --ignore-blank-lines prod.schema.sql vide.schema.sql
>
> 234c246
> < CREATE TABLE IF NOT EXISTS "membres"
> ---
>   > CREATE TABLE IF NOT EXISTS membres
> 244a257
>   >       "passe" TEXT COLLATE U_NOCASE,
> 250,252c263
> <       "date_naissance" TEXT COLLATE U_NOCASE, -- Date de
naissance
> <       "num_licence" INTEGER, -- Numéro de licence
> <       "passe" TEXT COLLATE U_NOCASE
> ---
>   >       "lettre_infos" INTEGER -- Inscription à la lettre
d'information
> 514c528
> < :
> ---
>   >
> 519c533
> < CREATE INDEX IF NOT EXISTS users_list_code_postal ON membres
> (id_category, code_postal COLLATE U_NOCASE);
> ---
>   > CREATE INDEX IF NOT EXISTS users_list_code_postal ON membres
> (id_category, "code_postal" COLLATE U_NOCASE);
> 522c536
> < CREATE INDEX IF NOT EXISTS users_list_nom ON membres (id_category, nom
> COLLATE U_NOCASE);
> ---
>   > CREATE INDEX IF NOT EXISTS users_list_nom ON membres (id_category,
> "nom" COLLATE U_NOCASE);
> 525c539
> < CREATE INDEX IF NOT EXISTS users_list_numero ON membres (id_category,
> numero);
> ---
>   > CREATE INDEX IF NOT EXISTS users_list_numero ON membres (id_category,
> "numero");
> 528c542
> < CREATE INDEX IF NOT EXISTS users_list_ville ON membres (id_category,
> ville COLLATE U_NOCASE);
> ---
>   > CREATE INDEX IF NOT EXISTS users_list_ville ON membres (id_category,
> "ville" COLLATE U_NOCASE);
>
>
> Le ":" apparaît dans ma base de prod juste après la ligne
> CREATE INDEX IF NOT EXISTS users_category ON membres (id_category);
>
> => Je vois le champ lettre_infos en écart, mais ça me semble mineur par
> rapport à l'interface qui explose ! Les guillemets sont étonnants, mais
> cela ne devrait pas gêner.
>
> La config
> ---------
>
> $ diff --ignore-blank-lines prod.sql vide.sql|grep "INSERT INTO
config"
> -A1 -B1
>
> 14420c1541,1543
> < INSERT INTO config (key, value) VALUES ('nom_asso',
'Tenchi');
> ---
>   > INSERT INTO config (key, value) VALUES ('last_chart_change',
> '1705258966');
>   > INSERT INTO config (key, value) VALUES ('nom_asso',
'test');
>   > INSERT INTO config (key, value) VALUES ('email_asso',
> 'benoit@friry.net');
> 14423,14432d1545
> < INSERT INTO config (key, value) VALUES ('categorie_membres',
'1');
> < INSERT INTO config (key, value) VALUES ('champ_identifiant',
'email');
> < INSERT INTO config (key, value) VALUES ('champ_identite',
'nom');
> < INSERT INTO config (key, value) VALUES ('site_disabled',
'1');
> < INSERT INTO config (key, value) VALUES ('adresse_asso', '25
boulevard
> de Strasbourg');
> < INSERT INTO config (key, value) VALUES ('email_asso',
> 'tenchi@aikido-paris.org');
> < INSERT INTO config (key, value) VALUES ('site_asso',
> 'https://www.aikido-paris.org');
> < INSERT INTO config (key, value) VALUES ('couleur1',
'#b40000');
> < INSERT INTO config (key, value) VALUES ('couleur2',
'#dcdcdc');
> < INSERT INTO config (key, value) VALUES ('files',
>
'{"admin_background":1647769222,"admin_homepage":1647769363,"admin_css":null,"logo":1647769306,"icon":1647768936,"favicon":1647768915}');
> 14437,14438d1549
>

Cannot assign null to property in .../include/lib/KD2/DB/AbstractEntity.php:146

BohwaZ/Paheko

20/02/2024 16:59:23

À mon avis une migration qui n'a pas fonctionné correctement, mais
pourquoi, je ne sais pas, probablement un problème de disque du côté de
ton hébergeur ?

Cool que tu ait pu régler le souci :)