Flarum'dan Discourse'ye geçiş (Flarum to Discourse)

Uygulamalar
  • Bu makalede Flarum’dan Discourse’ye nasıl geçiş yapılacağını anlatacağım.

    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:
    https://www.kurulumu.net/topic/83/windows-10-pro-wsl2-kurulumu

    Ubuntu için:

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

    💡 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

    ⚠️ 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)
    

    Discourse’yi indirme

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

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

    Veri tabanı 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.

    Screenshot_1.png

    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.

    Screenshot_2.png

    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.

    • Flarum database aktarıldıktan sonra ember-cli çalıştırıken izin hatası alırsanız çalıştırın:
    sudo chmod -R 777 /home/MyUsername/.config/configstore
    
    • bundle install komutundan sonra hata alıyorsanız şunu kurun:
    sudo apt-get install libmysqlclient-dev
    gem install mysql2
    
    • Mailhog erişim:
    localhost:8025
    
  • @admin kullanıcıların şifreleri de doğru taşınabiliyor mu?

  • @dursuncan Hayır şifreler import olmaz.


Benzer konular