change database of ghost blog

最初に書いておくと、一番楽チンでダウンタイムも少ないであろう、

sqliteからデータをダンプして、mysqlのダンプに変換する方法は諦めたorz

SQLiteからMySQLへデータのマイグレーション(変換)|DB|ブログ|ノノログで紹介されていたPythonのスクリプトを使ってみたんだけど、だめだった

※ ちなみにghostのdbはデフォルトでsqlite3を使っていて、ghost/content/data/ghost.dbにある

ghostには記事や設定のエクスポート機能があるので、この機能を使う

流れは以下

  1. 記事をエクスポートする
  2. ghostの設定をmysqlを使うように書き換えてghost再起動
  3. まっさらなghostにエクスポートしたファイルをインポート

当然ghost再起動した段階で初期状態になってしまうのでダウンタイムになるけどまあ個人ブログだし妥協

設定の書き換え

ghost/config.jsを以下のように修正(元の設定をコメントアウトしてmysqlの設定を追加している)

production: {
...
    //database: {
    //    client: 'sqlite3',
    //    connection: {
    //        filename: path.join(__dirname, '/content/data/ghost.db')
    //    },
    //    debug: false
    //},
    database: {
      client: 'mysql',
      connection: {
        host     : '127.0.0.1',
        user     : '<db username>',
        password : '<db password>',
        database : '<db name>',
        charset  : 'utf8'
      }
    },
...
}

上の変更した後ghost再起動

ユーザー登録 orz

当然まっさらなのでログインも出来ない

しょうがないのでユーザー登録してログイン

設定のlabからインポート

だけどblogのロゴとかヘッダとかプロフィール消えてるので書き直す

記事のヘッダ画像や内容はちゃんと残っていた

まとめ

最初からRDBで動かそう!!!!!!(泣)

参考