안녕하세요,
4월에 테스트 서버에서 두 개의 포럼을 병합하는 작업을 이미 수행했으며, 매우 잘 진행되었습니다. 이에 따라 두 포럼을 최종적으로 병합하기로 결정했습니다.
당시 제가 따랐던 절차에 따라 병합 스크립트를 실행하려고 하니 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월에 성공적으로 적용되었습니다(이 토픽 참고).
- 두 포럼의 최신 백업으로 시작합니다.
- discourse를 설치합니다.
- 두 개의 백업을 가져옵니다.
- 유지할 포럼을 복원합니다.
SSH에서:
/var/discourse폴더로 이동합니다../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
tar xvzf old.forum.tar.gz 명령으로 구 백업을 추출합니다.
BDD.lu에서 BDD copyme로 복사.
gunzip < dump.sql.gz | psql -d copyme
discourse 사용자 종료
exit
종속성
nano, sqlite3 및 mysql2 종속성
(/var/www/discourse에서 root 사용자로 실행)
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
www.DeepL.com/Translator(무료 버전)로 번역됨