Afficher la version complète : Ajouter / Changer Préfix BD
Salut
je cherchais le moyen de changer / Ajouter un préfix de ma BD.
faites une sauvegarde avant de tenter quoi que soit
Dirigez-vous URL_de_votre_forum/install/tableprefix.php cette fenêtre apparait.Cliquez sur continuer.
http://img11.hostingpics.net/pics/3319272101.png
Vous pouvez indiquez ici le nouveau prefix et selectionner les tables à renommer.Dirigez-vous vers le bas.
http://img11.hostingpics.net/pics/6294704402.png
Cliquez sur renommer les tables.
http://img11.hostingpics.net/pics/8867867403.png
Fenetres de visualisation et de confirmation .Dirigez-vous vers le bas.
http://img11.hostingpics.net/pics/7730923004.png
Si tout ok cliquez sur renommer les tables sinon sur revenir en arrière.
http://img11.hostingpics.net/pics/7198376405.png
Vos tables ont été renommées ,suivez les indications pour inscrire le prefix dans le fichier sur votre server config.php.
http://img11.hostingpics.net/pics/5518068106.png
Bonsoir, merci pour la partage.
salut
je viens de voir que j'ai un soucis ,le changement de table se passe bien toutes les tables sont bien renommées mais lorsque je veux poster ou répondre à un post j'ai une erreur sql qui annonce que la table nom_de_mabase.post n'existe pas, donc j'ai relancé le script en supprimant le préfix et c'est OK je peux à nouveau poster si quelqu'un pourrait tester ou apporter des éclaircissement (au hazard Simon :d2) car moi ce soir suis HS ,j'essaierais demain.Si pas de solution il faudra supprimer ce post je ne veux pas qu'un membre aie des soucis en voulant le faire
donc j'ai relancé le script en supprimant le préfix et c'est OK je peux à nouveau poster si quelqu'un pourrait tester ou apporter des éclaircissement (au hazard Simon http://www.vbulletin-ressources.com/forum/images/smilies/grin.gif) car moi ce soir suis HS ,j'essaierais demain.Si pas de solution il faudra supprimer ce post je ne veux pas qu'un membre aie des soucis en voulant le faireTu avais bien mis à jour includes/config.php une fois le script executé ?
Version vBulletin: placer le code dans un fichier dbprefix.php dans le répertoire admincp (si vous ne l'avez pas renommé) et l'exécuter en appelant admincp/dbprefix.php directement:
<?php
/**
* Renomme le préfixe de table.
*
* Développé pour vBulletin 4.1.5 - non testé sur les versions précédentes.
* @author http://www.vbulletin-ressources.com/forum/member.php?u=12718
* @copyright http://www.vbulletin-ressources.com/forum/forum.php
* @version 1.0
*/
// ######################## SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
// ##################### DEFINE IMPORTANT CONSTANTS #######################
define('NOZIP', 1);
// #################### PRE-CACHE TEMPLATES AND DATA ######################
$phrasegroups = array('diagnostic');
$specialtemplates = array();
// ########################## REQUIRE BACK-END ############################
require_once('./global.php');
// ######################## CHECK ADMIN PERMISSIONS #######################
print_cp_header($vbphrase['execute_sql_query']);
if (!$vbulletin->debug)
{
$userids = explode(',', str_replace(' ', '', $vbulletin->config['SpecialUsers']['canrunqueries']));
if (!in_array($vbulletin->userinfo['userid'], $userids))
print_stop_message('no_permission_queries');
}
// ############################# LOG ACTION ###############################
log_admin_action();
// ################################################## ######################
// ######################### START MAIN SCRIPT ############################
// ################################################## ######################
if ($vbulletin->userinfo['lang_code'] == 'fr') {
$vbphrase['change_db_prefix'] = utf8_decode('Changer le préfixe de tables');
$vbphrase['old_db_prefix'] = utf8_decode('Préfixe de tables actuel');
$vbphrase['new_db_prefix'] = utf8_decode('Nouveau préfixe de tables');
$vbphrase['db_prefix_notice'] = utf8_decode(
'La modification du préfixe dans le fichier de configuration doit se faire manuellement
une fois le changement effectué. Le forum ne fonctionnera plus sinon.<br /><br />
Pour ce faire, éditer <i>includes/config.php</i> et remplacer <pre>$config[\'Database\'][\'tableprefix\'] = \'%s\';</pre> par: <pre>$config[\'Database\'][\'tableprefix\'] = \'%s\';</pre>'
);
$vbphrase['invalid_db_prefix']= utf8_decode('Préfixe de table invalide');
} else {
$vbphrase['change_db_prefix'] = utf8_decode('Change the table prefix');
$vbphrase['old_db_prefix'] = utf8_decode('Current table prefix');
$vbphrase['new_db_prefix'] = utf8_decode('New table prefix');
$vbphrase['db_prefix_notice'] = utf8_decode(
'You must edit manually in your configuration file the table prefix.
Otherwise the forum will no longer run.<br /><br />
To do that, edit <i>includes/config.php</i> and replace <pre>$config[\'Database\'][\'tableprefix\'] = \'%s\';</pre> with: <pre>$config[\'Database\'][\'tableprefix\'] = \'%s\';</pre>'
);
$vbphrase['invalid_db_prefix']= utf8_decode('Invalid table prefix');
}
if (!isset($_REQUEST['do']) || $_REQUEST['do'] == 'modify') {
print_form_header('dbprefix', 'modify');
print_description_row(sprintf($vbphrase['db_prefix_notice'], TABLE_PREFIX, 'NEW_TABLE_PREFIX'));
print_form_header('dbprefix', 'change');
print_table_header($vbphrase['change_db_prefix'], 2, 0);
print_label_row($vbphrase['old_db_prefix'], TABLE_PREFIX ?: $vbphrase['no']);
print_input_row($vbphrase['new_db_prefix'], 'newprefix', 'new_');
print_submit_row($vbphrase['change_db_prefix']);
}
if ($_POST['do'] == 'change') {
$newPrefix = $vbulletin->input->clean_gpc('p', 'newprefix', TYPE_STR);
if (!preg_match("/^[_\w]+$/", $newPrefix)) {
print_cp_message($vbphrase['invalid_db_prefix']);
}
print_form_header('dbprefix', 'modify');
print_description_row(sprintf($vbphrase['db_prefix_notice'], TABLE_PREFIX, $newPrefix));
if (TABLE_PREFIX == '') {
$tables = $vbulletin->db->query_read("SHOW TABLES");
} else {
$tables = $vbulletin->db->query_read("SHOW TABLES LIKE '".TABLE_PREFIX."%'");
}
while ($table = $vbulletin->db->fetch_row($tables)) {
$newName = $newPrefix.substr($table[0], strlen(TABLE_PREFIX));
$vbulletin->db->query_write(sprintf("RENAME TABLE `%s` TO `%s`", $table[0], $newName));
}
print_cp_message($vbphrase['done']);
die();
}
print_cp_footer();
ATTENTION: si vous n'aviez aucun préfixe et que d'autres scripts sont installés sur la même base: TOUT est renommé !
slt
oui bien sur j'avais bien renommer le fichier config.php ;) . Sinon avec ton code j'ai un message d'erreur sur la ligne 69.Du coups j'ai fouillé un peu de mon coté et en fait ce fichier tableprefix.php est present dans les fichiers de vbulletin dans install ,donc je l'ai lancé directement et la il y a une ptite interface qui nous guide pas à pas ,j'ai refait entièrement le tuto du 1er post :d2 .Mais car il y a en a un, j'ai toujours ce message qui me dit que nom_de_ma_BD.post n'exisste pas ,c'est etrange car il m'indique le nom de ma BD mais pas la table post qui devrait s'appelé v_post (dans mon essais), mais peut etre est-ce du à ce message dérreur que j'ai au lancement du script
Warning: chdir() [function.chdir]: SAFE MODE Restriction in effect. The script whose uid is 33 is not allowed to access ./../ owned by uid 0 in /path_de_mon_server/admincp/global.php on line 34
Pourtant les tables sont bien renommer j'ai tenter via le panel de mettre à jour tous les compteurs mais rien à faire dés que je veux lire un post ou en poster un nouveau j'ai l'erreur.
Sinon avec ton code j'ai un message d'erreur sur la ligne 69..Oups, j'ai utilisé une condition apparue avec PHP 5.3:
Depuis PHP 5.3, il est possible d'omettre la partie centrale de l'opérateur ternaire. L'expression expr1 ?: expr3 retourne expr1 si expr1 vaut TRUE, et expr3 sinon.
// Remplace:
print_label_row($vbphrase['old_db_prefix'], TABLE_PREFIX ?: $vbphrase['no']);
// Par:
print_label_row($vbphrase['old_db_prefix'], TABLE_PREFIX ? TABLE_PREFIX : $vbphrase['no']);
slt
ce coups ci c'est la ligne 25 ,
// 24 ######################## CHECK ADMIN PERMISSIONS #######################
25 print_cp_header($vbphrase['execute_sql_query']);
Dans mon config.php j'ai bien
$config['SpecialUsers']['canrunqueries'] = '1';
Pige pas, j'ai dû testé le code une bonne dizaine de fois avec succès :fool: Surtout que cette portion a été copié telle-quelle d'un autre fichier de l'admincp...
Efface la condition et re-teste. Si ça ne marche toujours pas, laisse tomber ma page :(
Pige pas, j'ai dû testé le code une bonne dizaine de fois avec succès :fool: Surtout que cette portion a été copié telle-quelle d'un autre fichier de l'admincp...
Efface la condition et re-teste. Si ça ne marche toujours pas, laisse tomber ma page :(
Ça me donne erreur sur la ligne suivante llol doit venir de mon server vu que pour toi ça fonctionne ,peut être qu'un membre fera l’essai ,merci de t'y avoir attardé.Sinon pour le tuto on le laisse tel quel ? Il devrait fonctionner normalement (pas pour moi :D) mes tables sont bien renommées pourtant , au cas ou et par mesure de précaution pour éviter aux membres des ennuies supprime le.
Sinon pour le tuto on le laisse tel quel ? Il devrait fonctionner normalement (pas pour moi :D) mes tables sont bien renommées pourtant , au cas ou et par mesure de précaution pour éviter aux membres des ennuies supprime le.Je vais essayer, tu vas voir ça va marcher llol
C'est ce que je disais, ça a fonctionné parfaitement :) Donc, tuto à garder ;)
Propulsé par vBulletin™ Version 4.1.12 Copyright © 2012 vBulletin Solutions, Inc. Tous droits réservés - Version française par vBulletin-Ressources.com