DocBaseから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ファイルの内容が出力されます。
:-:: プロジェクト太郎: "0000000001"-:: プロジェクト花子: "0000000002"
この内容をたとえば users.yaml として保存します。その後 id
の後にDocBaseの「名前」を記入してください。id コロン(:)の後には半角スペースを入れてください。たとえば次のような内容にします。
:-: 太郎: プロジェクト太郎: "0000000001"-: 花子: プロジェクト花子: "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 として処理されます。
- 添付ファイルも画像リンクとして処理されます。取り込み直後はリンク切れに見えますが
![]()
を[]()
の形式に変更してください。 - ページ内リンクは移行しません
- グループの参加者情報は移行しません
コード
おすすめの情報共有ツール
- NotePM :テレワーク時代のクラウド型ナレッジ共有ツール