Migrate a XenForo forum to Discourse

Digital Ocean 드롭렛에서 100만 개의 게시글이 있는 Xenforo → Discourse 마이그레이션을 방금 완료했습니다. 아래는 제가 명령어별로 사용했던 방법입니다(최근 다른 vBulletin 보드에서 수행한 작업과 매우 유사합니다).

가져오기(Import)를 위해 최소 4 vCPU/8GB를 권장합니다.

이 스레드에서 마이그레이션을 진행하는 데 도움을 주신 모든 분께 감사드립니다. 읽고 또 읽으며 정말 즐거운 며칠이었습니다.

1 - Digital Ocean Discourse 1클릭 드롭렛 설치

2 - SSH를 통해 프롬프트에 따라 Discourse 설치 완료

SSH 콘솔 열기
root
(루트 비밀번호)
(엔터)
(도메인).com
등

3 - SFTP 로그인

sftp root@XXX.XXX.XX.XX
y (확인 요청 시)
yes
(루트 비밀번호)
put db.sql /var/discourse/shared/standalone/db.sql

4 - 웹사이트에 로그인하여 관리자 계정 설정

5 - SSH 로그인 - 프로세스 시작

ssh root@XXX.XXX.XX.XX
cd /var/discourse
./launcher start app
docker exec -it app bash
sudo apt-get update
sudo apt-get upgrade
y

6 - MariaDB 설치 (mysql 대체재)

apt-get update && apt-get install mariadb-server-10.3 libmariadbd-dev
y

7 - MySQL 데이터베이스 설정

service mysql start
mysql -u root -p
password
create database import_db;
exit;

8 - 덤프 가져오기 → MySQL 데이터베이스 전송**

mysql -u root -p import_db < /shared/db.sql
password

9 - GEM 파일

echo "gem 'mysql2'" >>Gemfile
echo "gem 'mysql2', require: false" >> /var/www/discourse/Gemfile
echo "gem 'php_serialize', require: false" >> /var/www/discourse/Gemfile
cd /var/www/discourse
su discourse -c 'bundle install --no-deployment --without test --without development --path vendor/bundle'
(빨간색 텍스트 결과는 무시)

10 - 설치 스크립트 구성

vi /var/www/discourse/script/import_scripts/xenforo.rb

---DB 이름/비밀번호, 접두사 등 필요에 따라 텍스트 파일 편집---

(esc)
:wq

11 - 번들 구성

bundle config set path 'vendor/bundle'
bundle config set without 'development:test'
bundle config unset deployment
su discourse -c 'bundle install'

12 - MySQL 구성 (이전 단계에서 수행 가능할 수도 있음)

mysql --version
sudo mysql -u root -p
password
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
exit

13 - 설치 스크립트 실행

su discourse -c 'bundle exec ruby script/import_scripts/xenforo.rb'
5개의 좋아요