Bonjour,
Ayant déjà effectué une fusion de deux forums en avril, sur un serveur de test, qui s’est très bien déroulée. Nous avons décidé de fusionner définitivement les deux forums.
Suite à ma procédure de l’époque, je me retrouve avec une erreur de connexion à Postgres, lors du lancement du script de fusion.
Cela fait maintenant quatre jours que je suis dessus, mais n’étant pas développeur, je suis un peu limité pour trouver le problème.
Merci d’avance
Voici l’erreur :
discourse@serveur-app:/var/www/discourse$ IMPORT=1 DB_NAME=copyme DB_PASS=passwdDB SOURCE_BASE_URL=http://old.forum.fr UPLOADS_PATH=/var/www/discourse/public/uploads/default bundle exec ruby script/bulk_import/discourse_merger.rb
Loading application...
Traceback (most recent call last):
5: from script/bulk_import/discourse_merger.rb:817:in `<main>'
4: from script/bulk_import/discourse_merger.rb:817:in `new'
3: from script/bulk_import/discourse_merger.rb:22:in `initialize'
2: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/pg-1.4.2/lib/pg.rb:69:in `connect'
1: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/pg-1.4.2/lib/pg/connection.rb:661:in `new'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/pg-1.4.2/lib/pg/connection.rb:708:in `connect_to_hosts': could not match 0 port numbers to 1 hosts (PG::ConnectionBad)
J’en profite pour mettre la procédure de fusion complète.
Cette procédure est basée sur le post original et les problèmes rencontrés lors de mes tests
Cette procédure a fonctionné en avril (voir ce sujet).
- Commencer par des sauvegardes à jour des deux forums,
- Installer un discourse,
- Importer les deux sauvegardes,
- Restaurer le forum à conserver.
En SSH :
- Aller dans le dossier
/var/discourse - Entrer dans l’app
./launcher enter app.
Créer la BDD.
su postgres
psql
CREATE DATABASE copyme ENCODING='utf8';
Changer le mot de passe de l’utilisateur postgres
\postgres password
Quitter postgres
\q
Quitter l’utilisateur postgres
exit
Passer à l’utilisateur discourse
su discourse
Décompression sauvegarde forum OLD
Aller dans le dossier de ce dernier cd public/backups/default
Extraire la sauvegarde OLD via la commande tar xvzf old.forum.tar.gz
Copie de BDD.lu vers BDD copyme.
gunzip < dump.sql.gz | psql -d copyme
Quitter l’utilisateur discourse
exit
Dépendances
Dépendances nano, sqlite3 et mysql2
(avec l’utilisateur root dans /var/www/discourse)
apt update && apt upgrade -y
apt-get install -y nano sqlite3 libsqlite3-dev mariadb-server libmariadb-dev -y
gem install sqlite3 mysql2
ruby bbcode to md
git clone https://github.com/nlalonde/ruby-bbcode-to-md.git
cd ruby-bbcode-to-md/
gem build ruby-bbcode-to-md.gemspec
gem install ruby-bbcode-to-md-*.gem
cd ./..
Installation de Tiny_tds
Il faut installer FreeTDS puis Tiny_tds.
Pour FreeTDS :
wget http://www.freetds.org/files/stable/freetds-1.3.12.tar.gz
tar -xzf freetds-1.3.12.tar.gz
cd freetds-1.3.12
./configure --prefix=/usr/local --with-tdsver=7.3
make
make install
Pour Tiny_tds :
gem install tiny_tds
gem install ruby-bbcode-to-md
cd ./..
Le script
su discourse
bundle config unset deployment
IMPORT=1 bundle install
IMPORT=1 DB_NAME=copyme DB_PASS=passwdDB SOURCE_BASE_URL=http://old.forum.fr UPLOADS_PATH=/var/www/discourse/public/uploads/default bundle exec ruby script/bulk_import/discourse_merger.rb
Traduit avec www.DeepL.com/Translator (version gratuite)