こんにちは。
4月にテストサーバーで2つのフォーラムのマージを正常に完了しましたので、今回、本番環境で2つのフォーラムをマージすることにしました。
当時の手順に従ったところ、マージスクリプトを実行する際にPostgresへの接続エラーが発生しました。
4日間試行錯誤していますが、開発者ではないため、問題の特定には限界があります。
よろしくお願いいたします。
以下がエラーメッセージです。
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)
この機会に、完全なマージ手順を提示します。
この手順は、元の投稿とテスト中に発生した問題に基づいています。
この手順は4月にも機能しました(このトピックを参照)。
- 2つのフォーラムの最新のバックアップから開始します。
- Discourseをインストールします。
- 2つのバックアップをインポートします。
- 保持するフォーラムを復元します。
SSHで:
/var/discourseフォルダに移動します。appに入るには./launcher enter appと入力します。
DBを作成します。
su postgres
psql
CREATE DATABASE copyme ENCODING='utf8';
postgresユーザーのパスワードを変更します。
\postgres password
postgresから終了します。
\q
postgresユーザーを終了します。
exit
discourseユーザーに切り替えます。
su discourse
古いフォーラムのバックアップ解凍
そのフォルダに移動します cd public/backups/default
OLDバックアップをコマンド tar xvzf old.forum.tar.gz で展開します。
BDD.luからBDD copymeへのコピー。
gunzip < dump.sql.gz | psql -d copyme
discourseユーザーを終了します。
exit
依存関係
nano, sqlite3, mysql2の依存関係
(rootユーザーで/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 ./..
Tiny_tdsのインストール
まずFreeTDS、次にTiny_tdsをインストールする必要があります。
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
Tiny_tdsの場合:
gem install tiny_tds
gem install ruby-bbcode-to-md
cd ./..
スクリプト
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
Translated with www.DeepL.com/Translator (free version)