스크립트 감사합니다!
다만 매뉴얼이 다소 거칠고 명확하지 않다는 느낌을 받았습니다. 실제로 무엇을 제안하고 있는지 이해하려면 예를 들어 Xenforo 마이그레이션 가이드를 참고해야 했습니다. 누락된 단계를 몇 가지 추가해 보겠습니다:
- Discourse를 설치하고 실행 상태로 유지
- 원래 Phorum에서 mysqldump 생성 - 모든 것이 명확하고 정상적입니다.
- 데이터베이스 덤프를 Discourse 폴더로 복사:
docker cp/path/to/backup/phorum_db.sql.gz app:/shared/phorum_db.sql.gz(컨테이너 이름이 표준인app이라고 가정)
그리고 여기 누락된 부분이 있습니다:
- 실제로 Discourse Docker 컨테이너에 접속하여 MySQL을 설치합니다:
docker exec -it app bash apt-get update && apt-get upgrade
# pv는 진행 상황을 표시하기 위한 편의성 목적이며, lsb-release은 무엇인가에 의해 필요합니다 apt-get install -y lsb-release pv mariadb-server mariadb-client libmariadb-dev service mariadb start
MySQL 설치 과정은 약간 더 까다로울 수 있지만, MariaDB도 충분히 잘 작동합니다.
이후 데이터베이스를 생성합니다: mysql → CREATE database phorum.
그 다음 백업으로 데이터를 채웁니다: pv phorum_db.sql.gz | gunzip | mysql phorum (덤프가 순수 SQL이면 gunzip은 필요 없습니다)
Ruby에 MySQL 지원을 추가합니다:
cd /var/www/discourse/
echo "gem 'mysql2'" >>Gemfile
bundle config unset deployment
bundle install --no-deployment
마이그레이션 스크립트의 데이터를 수정합니다(데이터베이스 자격 증명, 접두사, 영구 링크):
nano /var/www/discourse/script/import_scripts/phorum.rb
그리고 원래 게시물의 가이드로 돌아가면, 그 부분은 모두 정상입니다:
깨끗한 Discourse 인스턴스로 가져오기를 실행합니다:
git config --global --add safe.directory /var/www/discourse bundle exec ruby script/import_scripts/phorum.rb
만약 Discourse 데이터베이스가 실제로 깨끗하지 않다면, 사전에 bundle exec rake db:drop db:create db:migrate로 정리하는 것이 좋습니다.
“PG::ConnectionBad: connection to server on socket “/var/run/postgresql/.s.PGSQL.5432” failed: FATAL: Peer authentication failed for user “discourse” (PG::ConnectionBad)” 오류로 실패하는 경우:
'Peer authentication failed for user "discourse"'오류가 발생하는 경우:/etc/postgresql/13/main/pg_hba.conf파일을 편집합니다- 모든 'peer’를 'trust’로 변경하고 파일을 저장합니다
- postgres 서버를 다시 로드합니다:
/etc/init.d/postgresql reload(또는psql -U postgres -c "SELECT pg_reload_conf();"를 사용할 수도 있지만, 제 경우 가끔 실패했습니다)
처음에는 사용자 마이그레이션이 실행되며, 이는 상대적으로 느릴 수 있습니다(스크립트 출력 기준 분당 약 1,200명. 저는 10만 명의 사용자가 있었습니다…).
이후 카테고리를 생성하고 메시지와 주제 마이그레이션을 시작합니다(동일한 속도, 분당 약 1,200개). 하지만 이 시점에는 이미 웹사이트에 액세스하여 그 모습을 확인할 수 있습니다.
Phorum처럼 오래된 엔진에 대해 기대했던 것보다 훨씬 더 순조롭게 진행되는 것 같습니다. 사적 메시지(PM) 마이그레이션은 없는 것 같지만, 저에게는 적어도 장애 요인이 되지는 않을 것입니다.
스크립트와 노고에 다시 한번 감사합니다!