Kobito が起動しなくなった場合の対処(読み込み中のままハング)
TL;DR
色々切り分けてみたところ、最後に保存したデータが原因で Kobito が起動しなくなった場合、バックアップから復旧してみてください。
$ cd ~/Library/Containers/com.qiita.Kobito/Data/Library/Kobito/Backups
- 壊れたDBにあって、正常に起動する DB にないデータを SQLite3 の DB から直接コピー
- 正常に起動するDBで Kobito を起動し、新規作成アイテムにコピーを貼り付ける
TS;DR
Kobito を起動すると読み込み中のままハングしている場合、恐らく以下の切り分けをすでに試されていると思います。
- アプリを再インストールをすると起動する(データは空)
- バックアップした最後のデータを復旧させると NG
- 1つ古いデータだと起動する(しかし、大事な直近のデータが消えたまま)
その上で、最後に編集したデータが原因でハングしていると思われる場合は、SQLite3 で保存されている Kobito のデータベースを直接編集してデータを復旧させます。
※ macOS(OSX) をベースに記事を書いていますが、Windows でも基本的に流れは同じだと思います。
Kobito のデータが保存されているパス(バックアップ/復元先のファイル)
~/Library/Containers/com.qiita.Kobito/Data/Library/Kobito/
以下はディレクトリ構造を tree
コマンドで表示した例です。
$ cd ~/Library/Containers/com.qiita.Kobito/Data/Library/Kobito/
$ tree
.
├── Kobito.db
├── Kobito.db-shm
├── Kobito.db-wal
├── CSS
│ └── custom-style.css
│
└── Backups
├── Kobito 2.3.8 2018-05-07 175832.db-backup
│ ├── Kobito.db
│ ├── Kobito.db-shm
│ └── Kobito.db-wal
├── Kobito 2.3.8 2018-05-08 210550.db-backup
│ ├── Kobito.db
│ ├── Kobito.db-shm
│ └── Kobito.db-wal
│
(以下同文)
Kobito のバックアップ・ディレクトリ
~/Library/Containers/com.qiita.Kobito/Data/Library/Kobito/Backups
$ cd ~/Library/Containers/com.qiita.Kobito/Data/Library/Kobito/
$ cd Backups
$ tree
.
├── Kobito 2.3.8 2018-05-07 175832.db-backup
│ ├── Kobito.db
│ ├── Kobito.db-shm
│ └── Kobito.db-wal
├── Kobito 2.3.8 2018-05-08 210550.db-backup
│ ├── Kobito.db
│ ├── Kobito.db-shm
│ └── Kobito.db-wal
│
(以下同文)
Kobito x.x.x yyyy-yy-yy yyyyyy.db-backup
x = Kobito のバージョン
y = バックアップの日付
バックアップからの復元
バックアップ・ディレクトリ内の各日付ごとのディレクトリにある下記3つのファイルを差し替えると、バックアップから復元できます。
/Kobito.db
/Kobito-shm.db
/Kobito-wal.db
SQLite コマンドで DB 内を手動でデータ検索
$ cd ~/Library/Containers/com.qiita.Kobito/Data/Library/Kobito/
$ cd Backups
$ ls
$ cd "Kobito x.x.x yyyy-yy-yy yyyyyy.db-backup"
$
$ sqlite3 Kobito.db
sqlite> .help
<略>
sqlite> .version
SQLite 3.16.0 2016-11-04 19:09:39 0e5ffd9123d6d2d2b8f3701e8a73cc98a3a7ff5f
sqlite> .dumb %ZITEM%
<略>
sqlite> .quit
上記のようにコマンドラインを利用してもいいのですが該当データを探すのが大変です。やはり GUI で探しコピペした方が楽で間違いもないため SQLite 用の DB ブラウザ・アプリを利用します。(もちろんコマンドに慣れている方はコマンドで)
「DB Browser for SQLite」(Mac, Win, PortableApp版あり)
http://sqlitebrowser.org/
- 「DB Brower for SQLite」アプリを開き「Open Database」から壊れた方の DB(Kobito.db)を開く。
Kobito のフォルダを Finder の「よく使う項目」に登録しておくと開くのが楽になります。 - 「Browse Data」タブを選び、ドロップダウンから「ZITEM」を選ぶと記事一覧が表示されます。
- 左側ペインの表で「ZRAW_BODY」列と「ZTITLE」列を見ながら復旧したいアイテムを探します。
- 選択すると右上のペインに内容が表示されるので、コピーしてどこかに避難しておきます。
- アプリを終了し、Kobito のDB(3つのファイル)を正常に起動するものに差し替えます。
- Kobito を起動し、新しいアイテムを作成後、先に避難したコピーデータを貼り付け、問題がありそうな箇所がないか確認して保存します。
- Kobito を再起動して問題がないようであれば、急ぎの作業を続けます。
検証環境
Kobito | OS | Hard |
---|---|---|
v.2.3.8 | macOS Sierra (OSX 10.12.6) |
MacBookPro Early 2015, Mem 8GB |
Author And Source
この問題について(Kobito が起動しなくなった場合の対処(読み込み中のままハング)), 我々は、より多くの情報をここで見つけました https://qiita.com/KEINOS/items/0d82f690be13751ae3c0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .