DocBase(ドックベース) からNotePMへデータ移行する

DocBase NotePM

DocBaseからNotePMへデータ移行するための方法と、プログラムの使い方を紹介します。

URL:他サービスからNotePMへ移行するスクリプト

 

DocBaseからのデータエクスポート

DocBaseの設定にエクスポートがあります。その中にダウンロードボタンがあります。フォーマットはJSONを選択してください。

ダウンロードボタンを押すと、エクスポートがリクエストされます。そして、ダウンロード準備ができるとメールが届きます。

メールにあるZipファイルのリンクを押すと3つのファイルがZipファイルでダウンロードできます。

エクスポートデータについて

エクスポートされたデータの形式は次のようになっています。

  • ファイル
    添付ファイルがZip圧縮されたデータです
  • 画像
    記事に添付された画像データです
  • JSON
    記事データがJSON化されたデータです

この各ファイルを展開(解凍)し、任意のフォルダへ次のように保存してください。

  • articles
    JSONファイルを入れてください
  • attachments
    添付ファイルおよび画像ファイルを入れてください

データのインポート

ではここからエクスポートしたデータをNotePMへ取り込む手順を紹介します。まず、プログラムをインストールします。必要なものは次の通りです。

  • Node.js
  • プログラムのインストール
  • アクセストークンの取得
  • 設定ファイルの作成

Node.jsのインストール

Node.jsはここからダウンロードできます。ダウンロード後、インストールを実行してください。

プログラムのインストール

プログラムはNode.jsをインストールした環境であれば、次のコマンドでインストールできます。

npm install notepm_importer -g

プログラムはMIT Licenseで公開しています。コードはNotePMMania/notepm_importer: 各種ドキュメント共有サービスからNotePMへ移行するスクリプトにて公開しています。

アクセストークンの取得

NotePMのアクセストークンは個人設定のAPIアクセストークンから取得できます。

そしてアクセストークンを新規作成してください。スコープとして、読み込みと書き込みの両方にチェックを付けてください。

生成されたアクセストークンは、再確認する方法はありません。必ずコピーしたり控えておいてください。

設定ファイルの作成

DocBaseのエクスポートデータにはユーザ名などの情報がありません。ユーザID(英数字)のみしかありません。そこで、DocBaseのユーザIDとNotePMの紐付けを行います。ベースになる設定ファイルは次のように出力できます。

notepm-users -a ACCESS_TOKEN -t TEAM_DOMAIN
  • ACCESS_TOKEN
    先ほど作成したNotePMのアクセストークンです
  • TEAM_DOMAIN
    NotePMのチームドメインです(例:notepm)

実行すると、次のようにYAMLファイルの内容が出力されます。

users:
-
id:
name:
user_code: "0000000001"
-
id:
name:
user_code: "0000000002"

この内容をたとえば users.yaml として保存します。その後 id の後にDocBaseの「名前」を記入してください。id コロン(:)の後には半角スペースを入れてください。たとえば次のような内容にします。

users:
-
id: 太郎
name:
user_code: "0000000001"
-
id: 花子
name:
user_code: "0000000002"

これで準備完了です。

インポートを実行する

ではインポートを実行します。コマンドは次のようになります。

notepm-docbase \
-p PATH_TO_EXPORT_DIR \
-a ACCESS_TOKEN \
-t TEAM_DOMAIN \
-u PATH_TO_SETTING_YAML

内容は次の通りです。

  • PATH_TO_EXPORT_DIR
    DocBaseからエクスポートしたZipファイルを解凍(展開)したディレクトリのパスです
  • ACCESS_TOKEN
    先ほど作成したNotePMのアクセストークンです
  • TEAM_DOMAIN
    NotePMのチームドメインです(例:notepm)
  • PATH_TO_SETTING_YAML
    先ほど作成した設定ファイル(YAML)のパスです

ノートについて

DocBaseのグループがNotePMのノートとして作成されます。複数グループに所属しているメモは複数のノートにインポートされます。グループに所属しないメモは「ルート」というノートに保存されます。ノートのデフォルト値は下記になります。

項目
ノートの説明 固定「DocBaseからインポートしたノートです」
スコープ 固定「プライベート」
グループ 設定しません
アイコン 設定しません

すべてのノートはプライベートで取り込みます。調整後、公開してください。

記事について

JSONはメタデータが追加されたものになります。各記事は次のように保存されます。

DocBaseの項目 NotePMへの適用
title ページのタイトルとして利用します
body ページの本文として利用します
created_at ページの作成日時として利用します
tags ページのタグとして利用します
user ページ作成者として利用します
groups 含まれるノートに記事を保存します
comments コメントとして利用します(後述します)
id 利用しません
draft 利用しません
archived 利用しません
url 利用しません
updated_at 利用しません
scope 利用しません
stars_count 利用しません
good_jobs_count 利用しません
sharing_url 利用しません
attachments 利用しません

コメントはさらに次のように展開されます。

DocBaseの項目 NotePMへの適用
id 利用しません
body コメント本文として利用します
created_at コメント作成日時として利用します
user コメントしたユーザとして利用します

注意点

データのインポート時の注意点は次の通りです。

  • ユーザ情報がない(または特定できない)ページは NotePM-bot として処理されます。
  • 添付ファイルも画像リンクとして処理されます。取り込み直後はリンク切れに見えますが ![]()[]() の形式に変更してください。
  • ページ内リンクは移行しません
  • グループの参加者情報は移行しません

コード

URL:他サービスからNotePMへ移行するスクリプト

 

おすすめの情報共有ツール

  • NotePM :テレワーク時代のクラウド型ナレッジ共有ツール