Hello!
Je me suis rendu compte qu’un de mes plugins maisons ne met pas à jour la base de données comme il se doit. En fouillant un peu, je vois que même toto_base_version n’est pas créé.
Pour résumer, mon plugin a pour préfixe « toto ». Il a un numéro de version x.y.z dans paquet.xml à la racine du site. Ainsi qu’un numéro de schéma :
<paquet
prefix=« toto »
categorie=« divers »
version=« 0.2.0 »
etat=« dev »
compatibilite=« [3.0.0;3.2.*] »
logo=« prive/themes/spip/images/toto-64.png »
schema=« 0.2.0 »
Mon paquet.xml passe la validation de plugins.spip.net : https://plugins.spip.net/validation/
Le plugin est reconnu par SVP de mon SPIP 3.0
A la racine de mon plugin, j’ai un fichier toto_administrations.php avec les fonctions toto_upgrade() et toto_vider_tables().
Exemple :
if (!defined(‹ _ECRIRE_INC_VERSION ›)) {
return;
}
include_spip(‹ inc/utils ›);
include_spip(‹ inc/meta ›);
/**
- Fonction d’installation et de mise à jour du plugin.
- @param string $nom_meta_base_version
- Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
- @param string $version_cible
- Version du schéma de données dans ce plugin (déclaré dans paquet.xml)
- @return void
**/
function toto_upgrade($nom_meta_base_version, $version_cible) {
$maj = array();
$maj[‹ create ›] = array(‹ toto_maj010 ›);
$maj[‹ 0.1.0 ›] = array(‹ toto_maj010 ›);
$maj[‹ 0.2.0 ›] = array(‹ toto_maj020 ›);
include_spip(‹ base/upgrade ›);
maj_plugin($nom_meta_base_version, $version_cible, $maj);
}
/**
- Fonction de désinstallation du plugin.
- @param string $nom_meta_base_version
- Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
- @return void
**/
function toto_vider_tables($nom_meta_base_version) {
effacer_meta(‹ toto ›);
effacer_meta($nom_meta_base_version);
}
Les fonctions toto_majXXX existent dans le fichier toto_administrations.php
Tout cela en place, SVP/SPIP ne met pas à jour la BDD selon ma demande. J’ai même mis un 0777 sur tous les fichiers et répertoires.
Sauriez-vous me dire pourquoi cela ne fonctionne pas s’il vous plaît ? J’en perd mon latin…
Amicalement,