Migrer un forum phpBB3 vers Discourse

Je semble être le seul à poster ici…

Alors, juste au moment où je m’apprêtais à lancer mon nouveau forum Discourse, nous avons découvert un problème très étrange ! Je suis bloqué avec ce problème, j’espère que quelqu’un ici pourra éclairer la lanterne…

Cas : J’ai importé deux bases de données dans Discourse depuis phpBB3. La première est une archive, qui est essentiellement l’ancien forum que nous avions divisé en deux il y a 15 ans, puis gelé. L’autre moitié du forum est restée active et a grandi. Mon espoir était que l’importateur les fusionne lors de l’importation, ce qu’il a fait ! :smiley:

Mais j’ai maintenant découvert un cas concernant un utilisateur, et j’ai besoin de savoir s’il s’agit d’un cas isolé ou si d’autres ont été touchés, puis comment rechercher d’autres cas.

L’utilisateur avait créé deux comptes. Tous deux sur le forum actuel. Disons que l’ancien compte s’appelait OldName et le nouveau NewName.

Sur le forum Discourse importé, il y a maintenant deux utilisateurs. L’un s’appelle OldName et celui qui aurait dû être NewName a été renommé OldName1. De plus, les publications de OldName ont été fusionnées dans OldName1.

Je n’ai aucune idée de pourquoi cela n’est arrivé qu’à cet utilisateur, car il existe d’autres utilisateurs avec des comptes doubles qui ne semblent pas être affectés par cela.

Quelqu’un sait-il ce qui a pu se passer ici ?
Y a-t-il un moyen de rechercher d’autres cas ?

1 « J'aime »

Mais probablement pas comme vous le pensez. Si vous avez simplement exécuté l’importateur deux fois, tous les champs personnalisés import_id entraient en conflit, de sorte que l’utilisateur avec l’identifiant 123 dans la première base de données est maintenant le même utilisateur que l’identifiant 123 dans la nouvelle base de données. Il en va de même pour les sujets et les messages.

Je suis presque certain que chaque identifiant d’utilisateur (ainsi que les sujets, les messages et probablement les catégories) qui existe à la fois dans l’ancienne et la nouvelle base de données est fusionné avec l’ancienne.

Vous devrez prendre des mesures pour éviter que les import_ids entrent en conflit (peut-être supprimer les anciens, ou modifier le script d’importation pour les rendre uniques à chaque importation).

4 « J'aime »

Eh bien… ils SONT quand même les mêmes ??
Je veux dire, c’est fondamentalement le même forum, seule une partie a continué d’évoluer, tandis que l’autre est restée figée dans le temps. Donc, l’ID utilisateur 123 est toujours l’ID utilisateur 123, et les IDs des messages et des sujets aussi ?

Que voulez-vous dire par champs personnalisés import_id ?

Le forum semble correct, tous les sujets, messages, etc. sont bien en place. L’idée générale est bien qu’ils soient fusionnés ?

Je ne trouve aucun autre problème avec d’autres utilisateurs/messages/sujets, sauf dans ce cas précis ?

Pour peut-être mieux expliquer la situation :

Au départ, il y avait un seul forum phpBB. À un moment donné, je l’ai cloné. L’une des copies est restée fermée et est devenue l’archive. L’autre partie, j’ai supprimé les plus anciens messages (qui se trouvaient désormais dans l’archive) et l’ai laissée ouverte. Dans celle-ci, les utilisateurs, sujets, messages, etc. ont simplement augmenté sans jamais être modifiés (au niveau des IDs). Donc, ce que je pensais, c’est que le script d’importation verrait simplement l’archive et le forum actuel comme deux parties d’une même base de données, car ils le sont… et les traiterait comme un import incrémental. Et c’est ce qui s’est produit ?

Donc, aidez-moi s’il vous plaît à comprendre ce qui s’est mal passé à vos yeux, car ce que vous soulignez est exactement ce que je voulais qu’il fasse…

Si le deuxième forum était un sur-ensemble du premier, je ne vois pas pourquoi vous les avez tous les deux importés, mais tant que le nouveau forum n’utilise aucun des mêmes identifiants d’utilisateur, de publication ou de sujet que le premier, vous devriez être en ordre.

Lorsqu’un utilisateur, un sujet ou une publication est importé, un XxxCustomField est créé avec le nom import_id afin que vous puissiez identifier la correspondance entre l’ancien forum et le nouveau.

Certains importateurs créent également un champ personnalisé import_username si le nom d’utilisateur change. Vous pouvez faire quelque chose comme :

cd /var/discourse
rails c
u=User.find_by_username('nom-utilisateur-que-vous-voulez')
u.custom_fields

pour les voir.

1 « J'aime »

Parce que je voulais que la partie archivée soit réintégrée dans l’ensemble du forum, plutôt que d’avoir deux « moitiés » d’un seul forum. Maintenant, je n’ai plus besoin de maintenir un ancien archive phpBB2 séparé que je devrais convertir d’une manière ou d’une autre vers Discourse… il est à nouveau entier :slight_smile: (nous avons créé l’archive dans le but de réduire la charge du serveur à l’époque).

J’ai essayé votre requête, merci,
pour le cas d’usage dans mon message, j’ai obtenu {"import_id"=>"21293"} pour NewName
et pour OldName1, cela a donné
{"import_id"=>"8800", "import_username"=>"OldName"}
Donc, wow, cela montre ce qui s’est passé là… Y a-t-il une raison pour laquelle il a décidé que import_id8800 appartenait au nom d’importation NewName ? Puisqu’ils ont des import_id différents.

Existe-t-il un moyen de faire une recherche plus générique car je ne sais pas quels utilisateurs sont concernés, c’est ce que j’essaie de déterminer, donc je ne connais pas la partie username-youwant.

Une façon de procéder serait :

  • Restaurer la sauvegarde effectuée juste après l’importation de l’archive.
  • Effacer les valeurs import_id des publications, des sujets, des catégories et des utilisateurs.
  • Effectuer l’importation actuelle du forum.

Lorsque vous faites cela, les utilisateurs doivent être appariés et fusionnés par e-mail.

4 « J'aime »

Exactement. Ils ont des import_id différents, mais le même nom d’utilisateur. Si vous voulez qu’ils soient le même utilisateur, ils devront avoir le même nom d’utilisateur (ou vous pouvez faire en sorte qu’ils aient le même import_id).

Peut-être chercher avec :

User.where("username like '%1'")

Cela capturera aussi les personnes qui voulaient simplement que leur nom d’utilisateur se termine par un 1. .

Et cela fonctionnera parfaitement . . . sauf si leurs adresses e-mail ont changé.

Quel que soit la méthode utilisée, vous aurez des éléments comme celui-ci à résoudre manuellement.

1 « J'aime »

Très utile. Je migre mon forum de jeux vers Discord. L’hébergement PHPbb que j’utilisais (celui-ci : https://www.cloudways.com/en/phpbb-hosting.php) ne prend pas en charge les applications autres que PHP. Je suis donc en train d’explorer une autre plateforme pour cela.

J’essaie de migrer un forum phpBB 3.2.9 vers Discourse. J’ai environ 2 800 utilisateurs et près de 36 000 messages. Pour l’importation, j’utilise le dépôt Git de @gerhard avec la branche phpbb3.

La migration des utilisateurs et des messages privés fonctionne bien. Cependant, j’ai un problème avec les messages. Seuls environ 2 800 messages ont été migrés. J’obtiens des messages comme celui-ci :

    12201 / 35281 ( 34.6%)  [68323 items/min]  Échec du mappage du message avec l'ID 14742
undefined method `name' for nil:NilClass
/var/www/discourse/script/import_scripts/phpbb3/support/bbcode/xml_to_markdown.rb:57:in `visit'
/var/www/discourse/script/import_scripts/phpbb3/support/bbcode/xml_to_markdown.rb:25:in `convert'
/var/www/discourse/script/import_scripts/phpbb3/support/text_processor.rb:41:in `process_raw_text'
/var/www/discourse/script/import_scripts/phpbb3/support/text_processor.rb:68:in `process_post'
/var/www/discourse/script/import_scripts/phpbb3/importers/post_importer.rb:35:in `map_post'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:130:in `block (2 levels) in import_posts'
/var/www/discourse/script/import_scripts/base.rb:491:in `block in create_posts'
/usr/local/lib/ruby/gems/2.6.0/gems/rack-mini-profiler-1.1.4/lib/patches/db/mysql2.rb:8:in `each'
/usr/local/lib/ruby/gems/2.6.0/gems/rack-mini-profiler-1.1.4/lib/patches/db/mysql2.rb:8:in `each'
/var/www/discourse/script/import_scripts/base.rb:490:in `create_posts'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:128:in `block in import_posts'
/var/www/discourse/script/import_scripts/base.rb:870:in `block in batches'
/var/www/discourse/script/import_scripts/base.rb:869:in `loop'
/var/www/discourse/script/import_scripts/base.rb:869:in `batches'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:186:in `batches'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:122:in `import_posts'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:33:in `execute'
/var/www/discourse/script/import_scripts/base.rb:47:in `perform'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:22:in `perform'
./script/import_scripts/phpbb3.rb:33:in `<module:PhpBB3>'
./script/import_scripts/phpbb3.rb:14:in `<module:ImportScripts>'
./script/import_scripts/phpbb3.rb:13:in `<main>'
    12202 / 35281 ( 34.6%)  [68322 items/min]  Échec du mappage du message avec l'ID 14744
undefined method `name' for nil:NilClass

Je ne suis pas un expert en Ruby. Je ne sais donc pas vraiment comment déboguer cela. On dirait qu’une méthode manque. Mais comment les obtenir et pourquoi près de 2 800 messages ont-ils été migrés ?

Des idées sur ce qui cause ce problème et, bien sûr, comment le résoudre ?

Merci !

1 « J'aime »

Parfois, il y a des gremlins dans le code ou des gobelins dans la base de données.

Si votre migration s’arrête en raison d’une erreur (ce qui semble être le cas ici), voici ce que je fais : je regarde le message d’erreur, je vais dans le fichier fautif du script et j’entoure l’erreur d’un simple :

begin
   # ligne ou lignes de code Ruby fautif
rescue
   puts "erreur ! dans <routine fautif> variable #{variable} blab blah mon super message"
end

J’ai récemment migré plus d’un million de messages, et intercepter les erreurs comme dans l’exemple ci-dessus et « passer à autre chose » m’a sauvé la mise.

Chaque migration est différente ; ce n’est pas que j’aie autant d’expérience que d’autres, mais je l’ai faite d’environ 20 manières différentes et 100 fois différentes, LOL. Mon expérience est que la construction begin rescue end est très importante.

Bien sûr, vous pouvez creuser plus profondément pour voir s’il y a un problème plus important plus tard ; mais parfois, vous voulez simplement continuer à avancer et à migrer :slight_smile:

2 « J'aime »

Bienvenue @TBauer :wave:

Peut-être avez-vous manqué cet avertissement dans le premier message.

2 « J'aime »

@TBauer semble utiliser cette branche expérimentale, donc je suppose que cela ne pose pas de problème. Ce n’est toujours pas pris en charge, mais j’aimerais savoir ce qui cause cette erreur de toute façon.

@TBauer, pourrais-tu s’il te plaît m’envoyer le contenu de la colonne post_text de la table phpbb_posts pour le message d’ID 14742 en MP ou le publier ici ?

Je suppose que tu as récemment effectué la mise à niveau vers phpBB 3.2 et que la conversion de l’ancien format BBCode vers le nouveau n’est pas encore terminée. C’est pourquoi cela pourrait échouer après 2800 messages. Si c’est le cas, tu devrais peut-être exécuter le reparleur de texte phpBB 3.2+ en ligne de commande. Le script d’importation ne prend actuellement pas en charge le mélange des anciens et des nouveaux formats de stockage pour les BBCodes, et la conversion BBCode vers Markdown devrait fonctionner beaucoup mieux avec le nouveau format. :wink:

4 « J'aime »

Non, la migration ne s’arrête pas. Le script s’exécute jusqu’à sa fin normale. Il se contente de ne pas migrer un grand nombre de messages. Dans ce cas, j’ai reçu des messages comme ci-dessus. J’ai vérifié quelques messages dans la base de données et il semble qu’il s’agisse tous d’anciens messages sans code XML.

@Helmi : bien sûr, je l’ai lu. C’est d’ailleurs pour cela que j’ai utilisé la branche expérimentale du code. :wink:

1 « J'aime »

Peut-être que c’est la solution. Je vais essayer cela en premier. J’ai réalisé que les messages échoués sont au format BBCode et non au format XML. Donc, prochaine tentative : convertir après le reparseur…

2 « J'aime »

Désolé, ce n’était pas tout à fait clair pour moi en lisant votre message.

@Helmi : aucun problème. :smiley:

@gerhard : ça a fonctionné ! Après avoir converti les publications dans le nouveau format, j’ai pu les importer. J’ai obtenu une exception uniquement lors de l’importation de quatre publications, mais dans mon cas, ce n’est pas grave.

   35264 / 35281 (100.0%)  [4879 éléments/min]  Exception lors de la création de la publication 39353. Ignorée.
attribut inconnu 'reply_id' pour PostReply.
/usr/local/lib/ruby/gems/2.6.0/gems/activemodel-6.0.1/lib/active_model/attribute_assignment.rb:53:in `_assign_attribute'
/usr/local/lib/ruby/gems/2.6.0/gems/activemodel-6.0.1/lib/active_model/attribute_assignment.rb:44:in `block in _assign_attributes'
/usr/local/lib/ruby/gems/2.6.0/gems/activemodel-6.0.1/lib/active_model/attribute_assignment.rb:43:in `each'
/usr/local/lib/ruby/gems/2.6.0/gems/activemodel-6.0.1/lib/active_model/attribute_assignment.rb:43:in `_assign_attributes'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/attribute_assignment.rb:22:in `_assign_attributes'
/usr/local/lib/ruby/gems/2.6.0/gems/activemodel-6.0.1/lib/active_model/attribute_assignment.rb:35:in `assign_attributes'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/core.rb:326:in `initialize'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/inheritance.rb:70:in `new'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/inheritance.rb:70:in `new'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/reflection.rb:158:in `build_association'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/associations/association.rb:325:in `build_record'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/associations/collection_association.rb:108:in `build'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/associations/collection_proxy.rb:316:in `build'
/var/www/discourse/app/models/post.rb:1064:in `create_reply_relationship_with'
/var/www/discourse/app/models/post.rb:750:in `block in save_reply_relationships'
/var/www/discourse/app/models/post.rb:748:in `each'
/var/www/discourse/app/models/post.rb:748:in `save_reply_relationships'
/var/www/discourse/lib/post_creator.rb:187:in `block in create'
/var/www/discourse/lib/post_creator.rb:360:in `block (2 levels) in transaction'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:281:in `block in transaction'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/connection_adapters/abstract/transaction.rb:280:in `block in within_new_transaction'
/usr/local/lib/ruby/2.6.0/monitor.rb:235:in `mon_synchronize'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/connection_adapters/abstract/transaction.rb:278:in `within_new_transaction'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:281:in `transaction'
/usr/local/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/transactions.rb:212:in `transaction'
/var/www/discourse/lib/post_creator.rb:359:in `block in transaction'
/var/www/discourse/lib/distributed_mutex.rb:33:in `block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:29:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:29:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:14:in `synchronize'
/var/www/discourse/lib/post_creator.rb:358:in `transaction'
/var/www/discourse/lib/post_creator.rb:168:in `create'
/var/www/discourse/script/import_scripts/base.rb:555:in `create_post'
/var/www/discourse/script/import_scripts/base.rb:503:in `block in create_posts'
/usr/local/lib/ruby/gems/2.6.0/gems/rack-mini-profiler-1.1.4/lib/patches/db/mysql2.rb:8:in `each'
/usr/local/lib/ruby/gems/2.6.0/gems/rack-mini-profiler-1.1.4/lib/patches/db/mysql2.rb:8:in `each'
/var/www/discourse/script/import_scripts/base.rb:490:in `create_posts'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:128:in `block in import_posts'
/var/www/discourse/script/import_scripts/base.rb:870:in `block in batches'
/var/www/discourse/script/import_scripts/base.rb:869:in `loop'
/var/www/discourse/script/import_scripts/base.rb:869:in `batches'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:186:in `batches'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:122:in `import_posts'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:33:in `execute'
/var/www/discourse/script/import_scripts/base.rb:47:in `perform'
/var/www/discourse/script/import_scripts/phpbb3/importer.rb:22:in `perform'
script/import_scripts/phpbb3.rb:33:in `<module:PhpBB3>'
script/import_scripts/phpbb3.rb:14:in `<module:ImportScripts>'
script/import_scripts/phpbb3.rb:13:in `<main>'

Merci pour l’importateur et pour ce travail formidable ! :slight_smile:

3 « J'aime »

Bonjour @gerhard, nous utilisons en fait le script pour importer un très vieux forum phpBB qui doit être sauvegardé avant d’être supprimé. Tout se passe plutôt bien, mais à la fin, le forum rencontre des problèmes d’encodage. Les titres et le contenu des messages s’affichent avec un mauvais encodage.

Le forum était en français, et le dump SQL que nous avons téléchargé depuis pBB est encodé en UTF-8. Qu’avons-nous manqué, s’il vous plaît ?

Merci beaucoup, ce travail est génial ! :open_mouth:

Il est possible qu’il y ait un problème d’encodage quelque part… Il y a une raison pour laquelle on a appelé ça l’enfer de l’encodage MySQL.

Il y a longtemps, j’ai créé un script pour réparer les bases de données qui contiennent des données UTF-8 dans des tables encodées en latin1. Peut-être que cela vous aidera ? Sinon, vous devrez résoudre ce problème vous-même.

3 « J'aime »

Hi @gerhard and thanks for replying. What should be the format of my SQL dump file please ? Actually VS Code says to me that it is UTF-8. So… it should work no ?

That issues of encoding drive me crazy… :frowning:

@gerhard : EDIT : An example of what I have in the dump file below.

#
# phpBB Backup Script
# Dump of tables for phpbb3_
# DATE : 06-04-2020 08:26:04 GMT
#
# Table: phpbb3_posts
DROP TABLE IF EXISTS phpbb3_posts;
CREATE TABLE `phpbb3_posts` (
  `post_id` mediumint(8) unsigned NOT NULL auto_increment,
  `topic_id` mediumint(8) unsigned NOT NULL default '0',
  `forum_id` mediumint(8) unsigned NOT NULL default '0',
  `poster_id` mediumint(8) unsigned NOT NULL default '0',
  `icon_id` mediumint(8) unsigned NOT NULL default '0',
  `poster_ip` varchar(40) collate utf8_bin NOT NULL default '',
  `post_time` int(11) unsigned NOT NULL default '0',
  `post_approved` tinyint(1) unsigned NOT NULL default '1',
  `post_reported` tinyint(1) unsigned NOT NULL default '0',
  `enable_bbcode` tinyint(1) unsigned NOT NULL default '1',
  `enable_smilies` tinyint(1) unsigned NOT NULL default '1',
  `enable_magic_url` tinyint(1) unsigned NOT NULL default '1',
  `enable_sig` tinyint(1) unsigned NOT NULL default '1',
  `post_username` varchar(255) collate utf8_bin NOT NULL default '',
  `post_subject` varchar(255) character set utf8 collate utf8_unicode_ci NOT NULL default '',
  `post_text` mediumtext character set utf8 collate utf8_unicode_ci NOT NULL,
  `post_checksum` varchar(32) collate utf8_bin NOT NULL default '',
  `post_attachment` tinyint(1) unsigned NOT NULL default '0',
  `bbcode_bitfield` varchar(255) collate utf8_bin NOT NULL default '',
  `bbcode_uid` varchar(8) collate utf8_bin NOT NULL default '',
  `post_postcount` tinyint(1) unsigned NOT NULL default '1',
  `post_edit_time` int(11) unsigned NOT NULL default '0',
  `post_edit_reason` varchar(255) collate utf8_bin NOT NULL default '',
  `post_edit_user` mediumint(8) unsigned NOT NULL default '0',
  `post_edit_count` smallint(4) unsigned NOT NULL default '0',
  `post_edit_locked` tinyint(1) unsigned NOT NULL default '0',
  PRIMARY KEY  (`post_id`),
  KEY `forum_id` (`forum_id`),
  KEY `topic_id` (`topic_id`),
  KEY `poster_ip` (`poster_ip`),
  KEY `poster_id` (`poster_id`),
  KEY `post_approved` (`post_approved`),
  KEY `tid_post_time` (`topic_id`,`post_time`),
  KEY `post_username` (`post_username`)
) ENGINE=MyISAM AUTO_INCREMENT=33585 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

INSERT INTO phpbb3_posts (post_id, topic_id, forum_id, poster_id, icon_id, poster_ip, post_time, post_approved, post_reported, enable_bbcode, enable_smilies, enable_magic_url, enable_sig, post_username, post_subject, post_text, post_checksum, post_attachment, bbcode_bitfield, bbcode_uid, post_postcount, post_edit_time, post_edit_reason, post_edit_user, post_edit_count, post_edit_locked) VALUES (3, 2, 1, 2, 0, '82.225.50.160', 1135852994, 1, 0, 1, 1, 1, 0, '', 'FORUM EFFACER PAR UN HACKER - Le 28/12/05 !!!', 'Le 28/12/05, le forum a été victime <!-- s:cry: --><img src=\"{SMILIES_PATH}/icon_cry.gif\" alt=\":cry:\" title=\"Crying or Very sad\" /><!-- s:cry: --> de la visite d\'un hacker <!-- s:pan --><img src=\"{SMILIES_PATH}/panpan.gif\" alt=\":pan\" title=\"panpan\" /><!-- s:pan --> peut scrupuleux <!-- s:sick --><img src=\"{SMILIES_PATH}/sick.gif\" alt=\":sick\" title=\"sick\" /><!-- s:sick --> : celui-ci après avoir trouvé le moyen de se connecter au Forum en tant qu?Administrateur du forum a tout simplement supprimé la totalité de nos messages <!-- s:evil: --><img src=\"{SMILIES_PATH}/icon_evil.gif\" alt=\":evil:\" title=\"Evil or Very Mad\" /><!-- s:evil: --> !!! \r\n\r\nMalheureusement et je m\'en excuse <!-- s:oops: --><img src=\"{SMILIES_PATH}/icon_redface.gif\" alt=\":oops:\" title=\"Embarassed\" /><!-- s:oops: -->  (j\'aurai du y penser!!!) aucune sauvegarde du site n\'existait et je n\'ai pu récupérer aucun des anciens messages !!!\r\n\r\n[b:f3vjqlv5]C EST A  NOUS MAINTENANT QU IL APPARTIENT DE FAIRE RENAITRE CE FORUM ET DE MONTRER QUE CE N EST PAS CE GENRE DE TERRORISME QUI EMPECHERA LE DUB ET LES SOUNDS SYSTEM DE PROGRESSER !!![/b:f3vjqlv5]:thumb \r\n\r\nPerdu pour perdu : n\'ayant pu récupérer les messages, j\'ai préféré tout effacer et installer la dernière version logiciel du forum qui corrige un certain nombre de failles de sécurité. Du coup [b:f3vjqlv5]LES ANCIENS MEMBRES DOIVENT CE RE-ENGERISTRER...[/b:f3vjqlv5]\r\n\r\nRespect to All\r\nRed Lion', '', 0, 'QA==', 'f3vjqlv5', 1, 0, '', 2, 0, 0),(5, 3, 4, 3, 0, '82.225.50.160', 1135856969, 1, 0, 1, 1, 1, 1, '', 'DUB FACTORY RED LION SOUND meets IRATION STEPPAS 21/01/06', 'Salut à tous,\r\n\r\nUne grosse soirée Roots Dub &amp; Steppa en soutien au Festival du col des 1000 de l\'association L\'anamounto\r\n\r\nRED LION Sound  accueillent les géants de Leeds:\r\n\r\nIRATION STEPPAS pour une session 100% heavy weight bass....\r\n\r\nBeware!!!\r\n\r\nCa se passe le 21 Janvier à l\'ADAEP à Grenoble...Paf 10euro 22H&gt;&gt;5H\r\n+ d\'infos soon come,\r\nd\'ici là vous pouvez tjrs écouter des extraits de la soirée qui avait lieu à Chalon-s/Saone l\'année dernière:\r\n\r\n<!-- m --><a class=\"postlink\" href=\"http://dubnews.free.fr/iration/irationmix.html\">http://dubnews.free.fr/iration/irationmix.html</a><!-- m -->\r\n\r\na+steph\r\nLions\'Den', '', 0, 'QA==', '2vvambac', 1, 0, '', 3, 0, 0),(6, 2, 1, 5, 0, '172.206.42.240', 1135857292, 1, 0, 1, 1, 1, 1, '', '', 'Aller Hop au boulot !!!\r\n\r\nLion à raison, faut pas perdre espoir et surtout ne pas laisser tomber se forum sous pretexte qu\'il n\'y as plus d\'information, l\'information c\'est nous tous ! \r\n\r\nUnity Again !!! \r\n\r\nRespect To RedLion Crew\r\nBless\r\nBokson', '', 0, 'QA==', '185llc4j', 1, 0, '', 5, 0, 0),(7, 2, 1, 4, 0, '81.56.248.144', 1135857298, 1, 0, 1, 1, 1, 0, '', '', 'misère.... sans deconner......\r\nfaut croire que ça occupe certains de faire chier les autres sans aucun interet....\r\nbon.......\r\nfaudrait pas en plus s\'énerver ni gueuler contre ce hacker, ça risquerait de lui faire plaisir......\r\n\r\nvoilà, je suis réenregistré\r\n\r\nrespects,\r\nmathieu', '', 0, 'QA==', '3ra8xkgy', 1, 0, '', 4, 0, 0),(8, 4, 11, 5, 0, '172.206.42.240', 1135857735, 1, 0, 1, 1, 1, 1, '', 'Relation Amplificateur - Enceintes', 'Irie \r\n\r\nVu qu\'on s\'est fait hacker je repose ma question ! \r\nComment calculer cette histoire d\'impédance ! \r\nSi on bridge l\'ampli, si on l\'utilise en stereo etc... \r\nEt je repose la question, j\'ai 2 enceinte bass reflex 750watts sous 8ohms\r\nmon amplis derrière 2x700 watts sous 8ohms (par exemple) si je le bridge et que j\'arrive a sortir 1x1400 watts que je balance sur 2 caissons vu que je l\'ai bridger il passe en 4ohms mon amplis, donc il faut que les bafles le suporte dérrière mais malheureusement dnas les carastéristique des baffles, il ne suporte pas une impédance de mois 4.75 ohms \r\n\r\nCOmment je fait tu peux expliquet un peu plus lion, se que tu avait commencer (avant le passage du hackers furieux) \r\nEn plus tu me l\'a déja expliquer mais j\'ai un pue zapper des trucs !!!\r\n\r\nThanks\r\nBokson', '', 0, 'QA==', '3bec5jss', 1, 0, '', 5, 0, 0),(9, 5, 3, 5, 0, '172.206.42.240', 1135857870, 1, 0, 1, 1, 1, 1, '', 'Pk l\'homme détruit !', 'Tena y Stellin \r\n\r\nUne question me traverse l\'esprit, je ne peux y répondre seul je crois car trop vaste peut être la réponse ! \r\n\r\nPourquoi les hommes détruise, se que l\'autre à crée ? \r\n\r\nJalousie, frustrations .... Je sais pas j\'arive pas a comprendre.\r\n\r\nBokson', '', 0, 'QA==', '34xwhk4b', 1, 0, '', 5, 0, 0),(10, 2, 1, 6, 0, '82.64.69.118', 1135859358, 1, 0, 1, 1, 1, 1, '', '', 'Bon, on repars à Zéro, c\'est pas une si mauvaise chose <!-- s:) --><img src=\"{SMILIES_PATH}/icon_smile.gif\" alt=\":)\" title=\"Smile\" /><!-- s:) -->\r\n\r\nBig Up !!\r\n\r\n\r\nNao\r\nGuidance,,,,', '', 0, 'QA==', '143421z7', 1, 0, '', 6, 0, 0),(11, 2, 1, 7, 0, '212.147.0.191', 1135861490, 1, 0, 1, 1, 1, 0, '', '', 'Yes content de revoir le forum UP!  <!-- s:) --><img src=\"{SMILIES_PATH}/icon_smile.gif\" alt=\":)\" title=\"Smile\" /><!-- s:) --> \r\n\r\nLongue vie a ce forum très instructif ! \r\n\r\nEach one teach one !\r\n\r\nJ-M', '', 0, 'QA==', '3gohbqv1', 1, 0, '', 7, 0, 0),(12, 2, 1, 8, 0, '82.235.34.36', 1135864108, 1, 0, 1, 1, 1, 0, '', 'ça roule!!', 'Content de voir que vous avez vite resolu le problem!\r\nRespect a toute la bande...\r\na bientot\r\nmanu', '', 0, 'QA==', '3oql1d2j', 1, 0, '', 8, 0, 0),(13, 6, 4, 8, 0, '82.235.34.36', 1135865115, 1, 0, 1, 1, 1, 0, '', 'Dub Addict Sound meets Jr CONY &amp; SHANTI D. 3/02/06', 'Une semaine apres Red Lion et Iration, vous pouvez\r\nvous remettre une couche de bass au RAIL theatre à LYON..\r\non accueil JUNIOR CONY &amp; Shant D...\r\nBoudou et Roots massacre feront leur live, 19Dub a la selection\r\net Phil au chant.\r\nde 21h a 3 h pour 7Eureu\r\n\r\ntchao a tous...', '', 0, 'QA==', '1y0bfm7j', 1, 0, '', 8, 0, 0),(14, 7, 4, 9, 0, '83.156.49.183', 1135865763, 1, 0, 1, 1, 1, 1, '', 'BORDEAUX:Manasseh,Manutension,Iration Steppas &amp; Uzinadub', 'Le 4SANS a Bordeaux présente a partire de 22h 8) :\r\n\r\nLE 21 Janvier <!-- s:hola --><img src=\"{SMILIES_PATH}/fun_59.gif\" alt=\":hola\" title=\"hola\" /><!-- s:hola --> \r\n\r\nMANASSEH feat Brother Culture\r\nMANUTENSION feat MC Tablloyd\r\nCRYSTAL DISTORSION\r\n\r\npour 10euros\r\n\r\n\r\nLE 25 Fevrier <!-- s:hola --><img src=\"{SMILIES_PATH}/fun_59.gif\" alt=\":hola\" title=\"hola\" /><!-- s:hola --> \r\n\r\nIRATION STEPPAS\r\nUZINADUB\r\nGG PROJECT\r\nELISA DO BRASIL\r\n\r\nPour 10euros\r\n\r\nDonc 2 bonne soirées sur Bordeaux pour le début d année 2006 <!-- s:bravo --><img src=\"{SMILIES_PATH}/bravoo.gif\" alt=\":bravo\" title=\"bravo\" /><!-- s:bravo -->', '', 0, 'QA==', '319buiqc', 1, 0, '', 9, 0, 0),(15, 6, 4, 3, 0, '82.225.50.160', 1135865811, 1, 0, 1, 1, 1, 1, '', '', 'et le lendemain  DUB FACTORY N°2 le samedi 4 fevrier de 21H&gt;&gt;5H\r\n\r\n[b:2d4j075e][color=red:2d4j075e]RED LION SOUND feat Sis ilie Meets JAH FREE Feat GARY JAMES[/b:2d4j075e][/color:2d4j075e]\r\n\r\nPaf 10euro\r\nStand Disques UK Dub\r\na+steph', '', 0, 'Qg==', '2d4j075e', 1, 0, '', 3, 0, 0),(16, 6, 4, 9, 0, '83.156.49.183', 1135865981, 1, 0, 1, 1, 1, 1, '', '', 'Sa gère cette soirée avec JAH FREE et RED LION!!!!!!!!!!!! <!-- s:wink: --><img src=\"{SMILIES_PATH}/icon_wink.gif\" alt=\":wink:\" title=\"Wink\" /><!-- s:wink: -->', '', 0, 'Qg==', 'sirogssh', 1, 0, '', 9, 0, 0),(17, 4, 11, 2, 0, '82.225.50.160', 1135866119, 1, 0, 1, 1, 1, 0, '', 'Série et parrallèle', 'Yes Bokson, on va régler cette histoire d?impédance :\r\n\r\nL?impédance étant la résistance (entre autre?) d?un circuit ou d?un composant, il faut te representer ton HP comme une résistance que l?on branche dans un circuit avec la sortie de l?amplis. C?est la totalité de la résistance de se circuit (avec une ou plusieurs résistance branchées entre elle) qui va déterminer la résistance SOUS LAQUELLE va fonctionnée ton amplis.\r\n\r\nPrenons l?exemple de ton amplis : \r\nCaractéristiques  techniques :\r\n750 watts sous 8ohms x 2 (2 canaux)\r\n1400 watts sous 8ohms x 1 (sortie bridgé)\r\n\r\nJe branche 1 HP de 750 watt sous 8 ohms sur un des 2 canaux (mode non bridgé) et tout va bien?\r\nJ?ajoute un 2e HP de 750/8. j?ai 2 solutions : \r\n\r\nSoit je branche le 2e HP sur le 2e canal de l?amplis et j?ai donc 2 HP de 750 W/ 8 Ohms branché sur 2 canaux de 700 W / 8 Ohms\r\n\r\nSoit je décide 	de mettre les 2 HP en série ou en parallèle :\r\n\r\n[b:1ms11ykd] En série :\nquand on branche plusieurs HP en série leur impédance Z d?additionnent[/b:1ms11ykd] ce qui donne : \r\n\r\n[b:1ms11ykd]Zt (sortie ampli) =  Z (hp1) + Z (hp2) + ?[/b:1ms11ykd]\r\n \r\nsoit pour notre exmple :\r\n8 Ohms +  8 Ohms =  16 Ohms \r\n\r\ndonc dans ce cas pour fonctionner correctement ton amplis devra etre capable de fournir 750W + 750W = 1500 W sous 16 Ohms sur un seul canal (si on branche les 2 HP en série et sur un seul canal de l?amplis)\r\n\r\n[b:1ms11ykd] En parralèle :\nquand on branche plusieurs HP en parralèle l?inverse de leur impedance s?additionnent [/b:1ms11ykd] ce qui donnent :\r\n\r\n[b:1ms11ykd]1/Zt = 1/Z (hp1) + 1/Z (hp2) + ?[/b:1ms11ykd]\r\n\r\nsoit dans notre exemple :\r\n1/8 + 1/8 = 2/8  donc Zt= 8/2=4 Ohms\r\n\r\ndonc dans ce cas pour fonctionner correctement ton amplis devra etre capable de fournir 750W + 750W = 1500 W sous 4 Ohms sur un seul canal \r\n(si on branche les 2 HP en parallèle et sur un seul canal de l?amplis)\r\n\r\n\r\nEt si [b:1ms11ykd]je decide de mettre 4 HP sur meme le canal (circuit)[/b:1ms11ykd] j?aurai :\r\n\r\n[b:1ms11ykd]Si tout les HP sont en série :\n\n8 Ohms +  8 Ohms + 8 Ohms +  8 Ohms = 32 Ohms[/b:1ms11ykd]\r\n\r\ndonc dans ce cas pour fonctionner correctement ton amplis devra etre capable de fournir 750W + 750W + 750W + 750W = 3000 W sous 32 Ohms sur un seul canal\r\n \r\n[b:1ms11ykd]Si tout les HP sont en parralèle :\n1/Zt= 1/8+1/8+1/8+1/8= 4/8 Zt=8/4=2 Ohms[/b:1ms11ykd]\r\n\r\ndonc dans ce cas pour fonctionner correctement ton amplis devra etre capable de fournir 750W + 750W + 750W + 750W = 3000 W sous 2 Ohms sur un seul canal\r\n\r\n[b:1ms11ykd]Si 2 x 2 HP couplé en serie sont montés en parralèle :\n1/Zt = 1/(8+8)+1/(8+8)=1/16+1/16= 2/16 Zt = 16/2=8 Ohms[/b:1ms11ykd]\r\n\r\ndonc dans ce cas pour fonctionner correctement ton amplis devra etre capable de fournir 750W + 750W + 750W + 750W = 3000 W sous 8 Ohms sur un seul canal\r\n\r\n[b:1ms11ykd]Pour 2 x 2 HP couplé en parrallèle sont montés en série :\nZt=(1/(1/8+1/8))+(1/(1/8+1/8)=1/(2/8)+1/(2/8)=4+4=8 Ohms[/b:1ms11ykd]\r\n\r\ndonc dans ce cas pour fonctionner correctement ton amplis devra etre capable de fournir 750W + 750W + 750W + 750W = 3000 W sous 8 Ohms sur un seul canal\r\n\r\nPour le cas ou tu as 6 HP je te laisse faire le calcul.\r\n\r\nAprès au niveau te ton amplis tu n\'as aucun réglage a faire (c\'est comment tu vas brancher tes enceintes entre elles qui va faire que ton amplis tournera sous tel ou tel impedance) tu as juste a vérifié dans les spécifications techniques quelles sont les impedances qu\'il peut supporter (et pas la meme occasion quelle puissance il peut délivrer sous chaque impedance)...\r\n\r\nRespect\r\nRed Lion', '', 0, 'QA==', '1ms11ykd', 1, 1136464838, '', 2, 1, 0),(18, 8, 4, 3, 0, '82.225.50.160', 1135866440, 1, 0, 1, 1, 1, 1, '', 'DUB FACTORY 2: RED LION SOUND Meets JAH FREE feat GARY JAMES', '[b:79akxjmn][size=150:79akxjmn]DUB FACTORY N°2 le samedi 4 fevrier de 21H&gt;&gt;5H[/size:79akxjmn][/b:79akxjmn]\r\n\r\n<!-- s:hola --><img src=\"{SMILIES_PATH}/fun_59.gif\" alt=\":hola\" title=\"hola\" /><!-- s:hola --> <!-- s:hola --><img src=\"{SMILIES_PATH}/fun_59.gif\" alt=\":hola\" title=\"hola\" /><!-- s:hola --> <!-- s:hola --><img src=\"{SMILIES_PATH}/fun_59.gif\" alt=\":hola\" title=\"hola\" /><!-- s:hola -->\r\n[b:79akxjmn][color=red:79akxjmn][size=167:79akxjmn]RED LION SOUND feat

...
...
2 « J'aime »

Une récente importation vBulletin que j’ai effectuée semble présenter des encodages différents selon les messages. J’ai écrit un code qui tente plusieurs coercions d’encodage.

1 « J'aime »