6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Kobito の markdown データをコマンドラインからダンプする

Last updated at Posted at 2014-10-10

Kobito(とりあえずバージョン 1.9.2)は、データを ~/Library/Kobito/Kobito.db にある Sqlite3 のデータベースに格納しています。スキーマが今後変わる可能性もありますが、とりあえず現バージョンで、有効な(削除されていない)markdown データを単純にカレントディレクトリにダンプしてみます。

-
db=~/Library/Kobito/Kobito.db
echo "SELECT zkey FROM zitem WHERE zin_trash IS NULL;" |
  sqlite3 $db |
  while read key
  do
    echo "SELECT zraw_body FROM zitem WHERE zkey = '$key';" |
      sqlite3 $db > $key.md
  done

記事ごとのデータは zitem テーブルに入っています。書き出しのファイル名には zkey フィールドを用いています。zuuid は UUID なので ID としてはこちらの方が良いかと思ったのですが、これ、公開された記事に対してサーバが振るもののようで、非公開の記事では NULL なんですよね。公開されたデータのみのダンプであれば、こちらでも良いかも。

何となく、現時点のテーブル定義を載せておきます。

-
/* 記事を格納するテーブル */
CREATE TABLE ZITEM (
  Z_PK INTEGER PRIMARY KEY, /* DB 内での一意な ID */
  Z_ENT INTEGER,
  Z_OPT INTEGER,
  ZIN_TRASH INTEGER, /* 有効なデータは NULL, 捨てると 1 */
  ZPRIVATE INTEGER, /* ? */
  ZTEAM INTEGER,
  ZCREATED_AT TIMESTAMP,
  ZPOSTED_AT TIMESTAMP,
  ZUPDATED_AT TIMESTAMP, /* ローカルでの更新日時? */
  ZUPDATED_AT_ON_QIITA TIMESTAMP, /* QIITA 上での */
  ZBODY VARCHAR, /* HTML 化された body */
  ZKEY VARCHAR, /* 何か、ユニークそうなキー */
  ZLINKED_FILE VARCHAR,
  ZRAW_BODY VARCHAR, /* markdown の body */
  ZTITLE VARCHAR, /* タイトル */
  ZURL VARCHAR, /* 公開 URL */
  ZUUID VARCHAR /* 公開された記事に振られる UUID */
);

では。

追記

Kobito 2.0 で、データベースファイルは ~/Library/Containers/com.qiita.Kobito//Data/Library/Kobito/Kobito.db へ移された模様。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?