« PMB V8: "tester sur une base saine" » : différence entre les versions

De L'effet des faits - les faits défaits
 
Ligne 65 : Ligne 65 :


<code>SHOW TABLES LIKE '%categorie%';</code>
<code>SHOW TABLES LIKE '%categorie%';</code>
Installation v80135
{| class="wikitable"
!Nom du paramètre MySQL
!Paramétrage recommandé
!Paramétrage actuel
!Commentaires
|-
|max_allowed_packet
|>= 64M
|67108864
|
|-
|sql_mode
|NO_AUTO_CREATE_USER
|ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
|La modification de ce paramètre est possible en session. Aucun impact.
|-
|character_set_server
|utf8, utf8mb3 ou latin1
|utf8mb4
|La modification de ce paramètre est possible en session. Aucun impact.
|-
|collation_server
|utf8_unicode_ci, utf8mb3_unicode_ci ou latin1_swedish_ci
|utf8mb4_0900_ai_ci
|La modification de ce paramètre est possible en session. Aucun impact.
|-
|default_storage_engine
|MyISAM ou InnoDB
|InnoDB
|
|-
|open_files_limit
|>= 10000
|10000
|
|-
|key_buffer_size
|>= 1G
|16777216
|
|-
|join_buffer_size
|>= 4M
|262144
|La modification de ce paramètre est possible en session. Aucun impact.
|-
|connect_timeout
|10
|10
|
|-
|interactive_timeout
|300
|28800
|La modification de ce paramètre est possible en session. Aucun impact.
|-
|wait_timeout
|300
|28800
|La modification de ce paramètre est possible en session. Aucun impact.
|-
|query_cache_limit
|>= 2M
|Aucun
|La modification de ce paramètre n'est possible que globalement. Cela peut affecter le fonctionnement d'autres applications.
|-
|query_cache_size
|>= 2M
|Aucun
|La modification de ce paramètre n'est possible que globalement. Cela peut affecter le fonctionnement d'autres applications.
|-
|tmp_table_size
|>= 256M
|268435456
|
|}
{| class="wikitable"
|'''LES FICHIERS DE CONNEXION A LA BASE DE DONNEES ( pmb/includes/db_param.inc.php et pmb/opac_css/includes/opac_db_param.inc.php ONT ETE MODIFIES.'''            '''Un modèle de référence est défini dans le répertoire pmb/tables pour chacun de ces fichiers.'''
'''VERIFIEZ CES FICHIERS SI VOUS VENEZ DE FAIRE UNE MISE A JOUR DE VOTRE INSTALLATION.'''           
|Successful
|-
|                '''Les paramètres book_pics_url ne sont plus utilisés. Merci de reporter les valeurs personnalisées dans le paramétrage de vignettes (admin/vignettes/sources/liens externes.'''               
|}
ERROR 1054 (42S22) at line 554: Unknown column 'pret_already_loaned_active' in 'field list'

Version actuelle datée du 25 octobre 2026 à 08:18

22 octobre 2026 :

je vais explorer "tester sur une base saine" (j'ai un deuxième serveur pour les tests)

mon pb :avoir des données pour tester :> quelles sont les tables que je dois exporter de la prod pour avoir : le catalogue, les emprunteurs et les prêts, et ne pas recopier du paramétrage incorrect ou absent.

Claude répond :

Pour votre test, vous n'avez probablement pas besoin de tout copier. Le problème concerne les paniers de lecteurs, donc commencez par le minimum, et ajoutez le reste seulement si nécessaire.

Principe

  • Exportez les données seules (INSERT, sans CREATE TABLE) : la structure doit venir de l'installation saine, sinon vous recopiez une éventuelle structure bancale.
  • Ne copiez jamais parameters, users, ni les tables de sessions ou de logs : c'est ce qui contient le paramétrage douteux.
  • Les tables de référence (types de documents, catégories de lecteurs, etc.) sont nécessaires, car les données y renvoient par numéro. Ce n'est pas le paramétrage général de PMB, mais ce sont des listes de votre établissement.

Étape 1 : minimum pour tester le panier de lecteurs

  • empr, empr_categ, empr_statut, empr_codestat
  • empr_custom, empr_custom_lists, empr_custom_values (champs personnalisés, s'ils sont utilisés)

Avec cela, vous pouvez recréer un panier de lecteurs et relancer votre procédure. Si l'ajout fonctionne sur la base saine, la cause est bien dans votre base de production.

Étape 2 : lecteurs et prêts

  • pret (prêts en cours), pret_archive (historique, optionnel et souvent volumineux), resa (réservations)
  • groupe, empr_groupe (groupes de lecteurs)
  • Les tables de référence côté exemplaires, voir ci-dessous.

Étape 3 : catalogue

  • Notices : notices, notices_custom*, notices_langues, notices_relations, analysis, bulletins
  • Exemplaires : exemplaires et les listes docs_type, docs_location, docs_section, docs_statut, docs_codestat
  • Auteurs, éditeurs, collections : authors, responsability, publishers, collections, sub_collections, series
  • Indexation : categories, notices_categories, indexint
  • Exemplaires numériques : explnum (en général sans les fichiers eux-mêmes)

Les index de recherche (tables notices_*global_index, words, etc.) ne sont pas à copier : PMB les reconstruit (Administration > Outils > Nettoyage de base).

Précautions

  • Je connais ces noms de tables de mémoire, et PMB en compte plus de 200. Pour vérifier ou compléter, utilisez SHOW TABLES LIKE 'empr%'; (idem avec docs%, notices%, etc.) sur votre base.
  • Dans phpMyAdmin, choisissez l'exportation personnalisée, cochez uniquement ces tables, option « données seules », et décochez la création de tables.
  • Les identifiants de référence d'une installation neuve (catégories, statuts) risquent d'entrer en conflit avec les vôtres. Videz donc ces tables de la base de test avant l'import, ou utilisez l'option « REPLACE » plutôt qu'« INSERT ».
  • Si des colonnes diffèrent entre prod et test, l'import échouera avec un message précis. Ce serait en soi un indice utile sur la migration ratée.
  • Ce sont des données personnelles : si le serveur de test est moins protégé, anonymisez les noms, adresses et e-mails des lecteurs.
  • Surtout, ne restaurez pas la base de production entière sur le serveur de test. Vous retrouveriez exactement le même problème, sans pouvoir l'isoler.

Faites un export de l'étape 1, testez la procédure, et dites-moi ce que vous obtenez.

Réalisation es précautions

voir le classeur PMB0135_precautions

Etape 1

SHOW TABLES LIKE 'empr%';

Etape 2

SHOW TABLES LIKE '%pret%';

SHOW TABLES LIKE '%resa%';   

Etape 3

SHOW TABLES LIKE 'notice%';

SHOW TABLES LIKE 'doc%';

SHOW TABLES LIKE '%categorie%';

Installation v80135

Nom du paramètre MySQL Paramétrage recommandé Paramétrage actuel Commentaires
max_allowed_packet >= 64M 67108864
sql_mode NO_AUTO_CREATE_USER ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION La modification de ce paramètre est possible en session. Aucun impact.
character_set_server utf8, utf8mb3 ou latin1 utf8mb4 La modification de ce paramètre est possible en session. Aucun impact.
collation_server utf8_unicode_ci, utf8mb3_unicode_ci ou latin1_swedish_ci utf8mb4_0900_ai_ci La modification de ce paramètre est possible en session. Aucun impact.
default_storage_engine MyISAM ou InnoDB InnoDB
open_files_limit >= 10000 10000
key_buffer_size >= 1G 16777216
join_buffer_size >= 4M 262144 La modification de ce paramètre est possible en session. Aucun impact.
connect_timeout 10 10
interactive_timeout 300 28800 La modification de ce paramètre est possible en session. Aucun impact.
wait_timeout 300 28800 La modification de ce paramètre est possible en session. Aucun impact.
query_cache_limit >= 2M Aucun La modification de ce paramètre n'est possible que globalement. Cela peut affecter le fonctionnement d'autres applications.
query_cache_size >= 2M Aucun La modification de ce paramètre n'est possible que globalement. Cela peut affecter le fonctionnement d'autres applications.
tmp_table_size >= 256M 268435456
LES FICHIERS DE CONNEXION A LA BASE DE DONNEES ( pmb/includes/db_param.inc.php et pmb/opac_css/includes/opac_db_param.inc.php ONT ETE MODIFIES. Un modèle de référence est défini dans le répertoire pmb/tables pour chacun de ces fichiers.

VERIFIEZ CES FICHIERS SI VOUS VENEZ DE FAIRE UNE MISE A JOUR DE VOTRE INSTALLATION.

Successful
Les paramètres book_pics_url ne sont plus utilisés. Merci de reporter les valeurs personnalisées dans le paramétrage de vignettes (admin/vignettes/sources/liens externes.

ERROR 1054 (42S22) at line 554: Unknown column 'pret_already_loaned_active' in 'field list'