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'