カテゴリー:
DB
タグ:
 sqlite3 dump backup restore

このエントリーをはてなブックマークに追加
更新日時:
2017年11月01日(水)
作成日時:
2017年11月01日(水)

前の記事 / 次の記事

やり方はたぶん3種類ある。

単純にコピーする方法とデータだけ吐き出す方法とSQLとして吐き出す方法。
記事中のディレクトリ構造とかはRails前提で。

参考

1.単純にコピーする

sqlite3は単純にコピーするだけで使えるので普通にコピーすればそれで丸ごとバックアップできる。

$ cp db/production.sqlite3 db/production.sqlite3.bak

とか。

2.backupファイルを吐き出す

dbの内容をbackupファイルとして吐き出す。
データの内容を人間が読む必要が無いのであれば手軽。
しかしファイルシステムでコピーするのと何が違うのかよく分かってない・・・。

sqlite> .backup backup_file

リストアは.backupで作成したファイルを指定すれば良い。

sqlite> .restore backup_file

3.dumpファイルを吐き出す

dbの内容をSQLとして吐き出す。
データの内容を人間が読む必要があったり、リストア時に小細工を弄したい時に便利。

まず、ダンプファイルの出力先を設定する。
出力先が設定されていないと標準出力にひたすらSQL文が出てきて自分が馬鹿であることに気付いてしまう。

sqlite> .output dump_file

次に.dumpコマンドでダンプファイルを出力。

sqlite> .dump

テーブルごとにダンプしたりもできる。

sqlite> .dump articles

リストアは次のようにする。

sqlite3 .read dump_file

コマンドラインから実行するためのメモ。

$ echo ".dump" | sqlite3 db/production.sqlite3 > production.dump
$ sqlite3 production.sqlite3 < production.dump

おしまい。