structure db: myisam vs utf8mb4 vs utf8
Je vois que certaines tables sont en myisam et que d'autres (la majorité) en utf8mb4 et 1 en utf8.
Dans le fichier 'install/mysql.sql', certaines tables ont ENGINE=InnoDB DEFAULT CHARSET=latin1
, d'autres ont simplement ça ENGINE=InnoDB
, et la table 'certificates' a ENGINE=InnoDB DEFAULT CHARSET=utf8;
La liste des tables en latin1:
alternc_status
cron
csrf
dovecot_quota
mailman
piwik_sites
piwik_users
policy
On peut voir dans le fichier install/mysql.sql
que toutes les tables qui sont en latin1 ont cette valeur définie dans leur structure (CHARSET=latin1) alors que toutes les tables qui sont en utf8mb4 ne donnent pas de valeur spécifique au charset et c'est mariadb qui prend la valeur par défaut de la db.
Il faudrait les avoir toutes en utfmb4.
Attention que plusieurs fichiers dans le sous-dossier upgrade font des opérations sur des tables en poussant à MyIsam.
install/upgrade_check.sh:51:mysql --defaults-file=/etc/alternc/my.cnf -e "CREATE TABLE IF NOT EXISTS alternc_status (name VARCHAR(48) NOT NULL DEFAULT '',value LONGTEXT NOT NULL,PRIMARY KEY (name),KEY name (name) ) ENGINE=MyISAM DEFAULT C
HARSET=latin1;"
install/upgrades/3.4.8.sql:6:) ENGINE=InnoDB DEFAULT CHARSET=latin1;
install/upgrades/3.0.0~1.sql:152:) ENGINE=MyISAM DEFAULT CHARSET=latin1;
install/upgrades/3.0.0~1.sql:167:) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=18 ;
install/upgrades/3.0.0~1.sql:179:) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
install/upgrades/3.0.0~1.sql:475:concat('*:storage=',cast(`mailbox`.`quota` as char charset latin1),'M') AS `userdb_quota_rule`,
install/upgrades/1.0.0.sql:14:) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='The password policies for services';
install/upgrades/0.9.10.sql:10:) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='The password policies for services';
install/upgrades/3.4.5.sql:8:) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='csrf tokens for AlternC forms';