DocBaseからesa.ioへのインポートスクリプトのサンプルです
- Docbase上で、memmber全員の「名前」を「ユーザーID (半角小英数) 」と同一に揃えてください
- docbase上のユーザーをesaに招待し、「ScreenName」をdocbase上の「ユーザーID (半角小英数) 」と同じにして下さい
これらは、メンバーの紐付けのために必要です。この作業を行わなくても移行は行なえますが、システムが投稿した記事やコメントの扱いになります。
DocBase上でメンバー名を調整したあとで、JSON形式でファイルをダウンロードします
※ スクリプトの作成・動作確認はRuby2.4.1で行っております
$ git clone https://github.com/esaio/d2e.git
$ bundle install
$ cp config.sample.yml config.yml
次に、
- JSON形式でダウンロードした3つのzipを全てzipディレクトリに配置します
- esaでは同じチーム内での記事の閲覧権限は全員同じなので、全員が閲覧できてまずいドキュメントはこの段階で削除して下さい
config.yml
にAPIトークンや設定を記述します- 必要に応じて
lib/converter.rb
の内容を変更します。- docbase上のデータをesa上のデータに変更する部分を主に調整していただくと良さそうです。
$ bundle exec ruby app.rb
ここでは、まだ実際には移行が行われません。 移行された場合にどうなるか出力されます
Dry Runの出力が問題なければ、実際にインポートを実行します。 ※ スクリプトの実行前に、esa運営チームにご連絡頂ければAPI制限の一時引き上げなどが可能です。
$ bundle exec ruby app.rb --run
インポート実行の途中でプログラムが終了してしまった場合などは、
--start=[index]
オプションで途中からインポートを再開できます。
例: 123番目の記事からインポートを再開
$ bundle exec ruby app.rb --run --start=123