Flarum'dan Discourse'a Taşıma

Bu makalede Flarum’dan Discourse’ye nasıl geçiş yapılacağını anlatılacaktır. Kaynak konunun en altında yazılmıştır.

Flarum’dan Discourse’ye geçmek için elimizde Discourse geliştirici kurulumu olan bir makine ve mevcut Flarum sitesinin veri tabanına ihtiyacımız olacak.

Flarum’dan Discourse’ye geçişte neler taşınacak:

  • Kategoriler
  • Varsa alt kategoriler
  • Kullanıcılar
  • Konular ve postlar

Flarum sitesinde yapılacak işlemler

İlk olarak Flarum sitenizin çalıştığı sunucuda veri tabanının bir yedeğini almanı gerekiyor. SSH erişiminiz varsa aşağıdaki komutu kullanarak;

mysqldump -u root -p veri_tabanı_aadı > yedek.sql

PHPmyAdmin erişiminiz var ise;

PHPmyAdmin’de oturum açın ve veri tabanını dışa aktarın.

Discourse geliştirici ortamı kurulumu

Discourse geliştirici ortamı kurmanın bir çok yolu var. Ubuntu, MacOS veya Windows’ta Discourse geliştirici kurulumu yapabilirsiniz.

MacOS için:

Windows için:

Ubuntu için:

Ben geçiş işlemini Windows’ta WSL2 sistemi üzerine kurulan Ubuntu 18.04 sunucu üzerinden yapacağız.

:bulb: Yukarıdaki linklerden Windows kurulum linkine tıklayın ve anlatıldığı gibi Windows işletim sistemine sahip bilgisayarınızda WSL2’yi ve Ubuntu 18.04’ü kurun. 20.04 kurmayın!

WSL2 ve Ubuntu 18.04 kurduysanız devam edebiliriz.

Discourse Geliştirici ortamı kurulumu

:warning:️ root olmayan ve sudo yetkilerine sahip bir kullanıcı ile aşağıdaki komutu çalıştırın. Kurulum biraz uzun sürebilir sabırla bitmesini bekleyin. Bu komut gerekli tüm paketleri bilgisayarınıza kuracaktır.

bash <(wget -qO- https://raw.githubusercontent.com/techAPJ/install-rails/master/linux)

DİSCOURSE’Yİ İNDİRME

Discourse deposunu (veya çatalınızı) ~/discourse klasörüne indirin.

git clone https://github.com/discourse/discourse.git ~/discourse

VERİ TABANI OLUŞTURMA

Ubuntu sistem kullanıcı adınızla aynı ada sahip bir kullanıcı oluşturmak için:

sudo -u postgres createuser -s "$USER"

Discourse önyükleme

Discourse klasörünüze geçin:

cd ~/discourse

Gerekli paketleri kurun:

source ~/.bashrc
bundle install

Veritabanı bağlantısını başarıyla yapılandırdığınıza göre şu komutları çalıştırın:

bundle exec rake db:create 
bundle exec rake db:migrate
RAILS_ENV=test bundle exec rake db:create db:migrate

Rails sunucusunu başlatın:

bundle exec rails server

Artık http://localhost:3000 adresinde Discourse örneğinin çalışması gerekir.

Şöyle bir uyarı görüyorsanız:

$ bin/ember-cli

Discoursenin kurulu olduğu dizinde bu komutu çalıştırın:

bin/ember-cli

Artık localhost:4200 adresinde Discourse hızlı kurulum ekranını görüyor olmalısınız.

Buraya kadar sorunsuz geldiyseniz şimdi bir yönetici hesabı oluşturabilirsiniz.

RAILS_ENV=development bundle exec rake admin:create

Eposta adresini ve şifrenizi girin ve gelen soruya Y ile cevap verin.

Discourse göç için hazır. Şimdi elimizde olan Flarum veri tabanını geliştirici ortamına kuracağımız MySQL sunucusuna geri yükleyeceğiz. Tabi ilk önce MySQL sunucu kurmamız gerek.

MySQL sunucusu Kurlumu

MySQL sunucusu kurmak için aşağıdaki komutu çalıştırın.

sudo apt-get install mysql-server mysql-client

Şimdi veri tabanı ve kullanıcısı oluşturalım.
Veri tabanına bağlanmak için sudo mysql komutunu çalıştırın.

MySQL sunucusunu başlatmak için:

sudo service mysql start

Flarum adında bir veri tabanı ve Ubuntu kullanıcı adımızla bir veri tabanı kullanıcısı oluşturalım.

CREATE DATABASE flarum;
CREATE USER 'ubuntu_kullanıcı_adini_yaz'@'localhost' IDENTIFIED BY '123456789';
GRANT ALL ON flarum.* TO 'ubuntu_kullanıcı_adini_yaz'@'localhost' IDENTIFIED BY '123456789' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Şimdi bilgisayarım tıklayın ve adres satırına \\wsl2$ yazın.

Ubuntu18.04 tıklayın. Home klasörünün açın ve Ubuntu kurulumu sırasında girdiğiniz kullanıcı adının klasörüne girin. Elinizdeki Flarum veri tabanını bu klasör içine kopyalayın.

Şimdi veri tabanını oluşturduğumuz Flarum adlı veri tabanına import edebiliriz. Bunun için;

mysql -u ubuntu_kullanıcı_adı -p flarum < yedek.sql

Ardında şifremiz olan 123456789 girin ve ENTER tuşlayın. Veri tabanı boyutuna göre bu işlem zaman alacaktır.

Şimdi Discourse kurulu olan dizine geçiş yapın. cd ~/discourse

Aşağıdaki komutu yazın:

sudo nano Gemfile

Açılan dosyanın sonuna aşağıdakini ekleyin.

gem 'mysql2'

Şimdi aşağıdaki komutu çalıştır:

bundle install

Şimdi Bilgisayarımda yine \\wsl2$ adresine ve kendi klasörünüzün içinde bulunan discourse klasörünü açın. Discourse klasörü içinde import_scripts klasörünün açın:

\\wsl$\Ubuntu-18.04\home\mekici\discourse\script\import_scripts

Yukarıda benim Ubuntu kullanıcı adım mekici. Siz kendi kullanıcı adınızı kullanacaksınız. flarum_import.rb dosyasını açın ve aşağıdaki bilgileri girin:

FLARUM_HOST ||= ENV['FLARUM_HOST'] || "localhost"
FLARUM_DB ||= ENV['FLARUM_DB'] || "flarum"
BATCH_SIZE ||= 1000
FLARUM_USER ||= ENV['FLARUM_USER'] || "ubuntu kullanıcı adınız"
FLARUM_PW ||= ENV['FLARUM_PW'] || "123456789"

Dosyayı kaydedip kapatın.

Şimdi geçiş işlemine başlamak için aşağıdaki komutu çalıştırın:

bundle exec ruby script/import_scripts/flarum_import.rb

Bu adımdan sonra veri tabanınızın büyüklüğüne göre içe aktarım olayı başlayacaktır.

Bu işlem bitince Discourse kurulu olan dizinde aşağıdaki komutu çalıştırın.

bundle exec rails server

Localhost:4200 gidince discourseye taşınmış sitenizi görmeniz gerek.
Verilerin Discourse’ye aktarılması biraz zaman alacaktır bekleyin. İlerleme durumunu görmek isterseni Discourse sitesinin kurulu olduğu dizinde aşağıdaki komutu çalıştrın.

bundle exec sidekiq -q critical,4 -q default,2 -q low

Discourse taşınma işlemini bitince localhost:4200/admin/backup/ adresinden yedeğinizi alıp canlı Discourse sitesine aktarabilirsiniz.

Kaynak: Flarum'dan Discourse'ye geçiş (Flarum to Discourse) | Kurulumu.Net