Olá,
Tendo já feito uma fusão de dois fóruns em abril, num servidor de teste, que correu muito bem. Decidimos fundir os dois fóruns para valer.
Seguindo o meu procedimento da época, encontro-me com um erro de conexão ao Postgres, ao lançar o script de fusão.
Estou nisto há quatro dias, mas não sendo um desenvolvedor, estou um pouco limitado em encontrar o problema.
Obrigado desde já
Aqui está o erro:
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)
Aproveito para colocar o procedimento completo de fusão.
Este procedimento baseia-se no post original e nos problemas encontrados durante os meus testes
Este procedimento funcionou em abril (ver este tópico).
- Comece com backups atualizados dos dois fóruns,
- Instale um discourse,
- Importe os dois backups,
- Restaure o fórum a manter.
Em SSH:
- Vá para a pasta
/var/discourse - Entre na app
./launcher enter app.
Criar a BD.
su postgres
psql
CREATE DATABASE copyme ENCODING='utf8';
Alterar a senha do utilizador postgres
\password postgres
Sair do postgres
\q
Sair do utilizador postgres
exit
Mudar para o utilizador discourse
su discourse
Descompressão do backup do fórum ANTIGO
Vá para a pasta correspondente cd public/backups/default
Extraia o backup ANTIGO através do comando tar xvzf old.forum.tar.gz
Copiar de BDD.lu para BDD copyme.
gunzip < dump.sql.gz | psql -d copyme
Sair do utilizador discourse
exit
Dependências
Dependências nano, sqlite3 e mysql2
(com utilizador root em /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 ./..
Instalação do Tiny_tds
Tem de instalar o FreeTDS e depois o Tiny_tds.
Para 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
Para Tiny_tds:
gem install tiny_tds
gem install ruby-bbcode-to-md
cd ./..
O 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
Traduzido com www.DeepL.com/Translator (versão gratuita)