Just finished up a Xenforo → Discourse migration of a million post board on a Digital Ocean droplet. Here’s what worked for me command by command (very similar to what also just did on a different vbulletin board).
Recommend minimum 4 vCPU/8GB for import.
Thanks to everyone in this thread for helping me get through these migrations, definingly been a fun few days reading and rereading…
1 - Install Digital Ocean Discourse 1-click droplet
2 - Finish discourse install through SSH by following prompts
Open SSH console
root
(yourrootpassword)
(enter)
(yourdomain).com
etc
3 - Login to SFTP
sftp root@XXX.XXX.XX.XX
y (if asked for confirmation)
yes
(yourrootpassword)
put db.sql /var/discourse/shared/standalone/db.sql
4 - Login to Website to setup Admin account
5 - Login to SSH - Begin Process
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 - Install MariaDB (replacement for mysql)
apt-get update && apt-get install mariadb-server-10.3 libmariadbd-dev
y
7 - Mysql Database Setup
service mysql start
mysql -u root -p
password
create database import_db;
exit;
8 - Import Dump -> Mysql Database Transfer**
mysql -u root -p import_db < /shared/db.sql
password
9 - GEM File
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'
(ignore red text result)
10 - Configure install script
vi /var/www/discourse/script/import_scripts/xenforo.rb
---Make edits to text file as needed for db name/password, prefix, etc---
(esc)
:wq
11 - Bundle Config
bundle config set path 'vendor/bundle'
bundle config set without 'development:test'
bundle config unset deployment
su discourse -c 'bundle install'
12 - Mysql config (may be possible to do this with previous)
mysql --version
sudo mysql -u root -p
password
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
exit
13 - Install Script
su discourse -c 'bundle exec ruby script/import_scripts/xenforo.rb'