FC2ブログ

SQLite のデータのバックアップと復元

SQLite のデータのバックアップと復元

#18 データのバックアップ・復元
http://dotinstall.com/lessons/basic_sqlite/6418
を参考に
テーブル構造、データを外部ファイルに出力し
それを取り込む方法を学習

今回使用するのは
.dump
これはDBの内容をSQL文で出力する
バックアップを取るのに便利

テーブルだけバックアップするなら
.dump テーブル名

すべてのテーブルをバックアップするなら
テーブル名を指定せず
.dump
とすればOK

これらを直接ファイルに出力するには
出力先を変更する

出力先の設定確認は
.show
で行える

現在の設定は
echo: off
explain: off
headers: on
mode: list
nullvalue: ""
output: stdout
separator: ","
stats: off
width:

出力先の設定部分は
output: stdout
になり、意味は画面表示

これを変更することで
ファイルに出力できるようになる

変更は
.output 出力するファイル名
今回は
.output data.dump
として
.dump data
と実行すると
data テーブルの中身が
SQL文でファイルに記述される

data.dump ファイルの中身を
cat data.dump で確認すると

PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE data(name,score,team_text);
INSERT INTO "data" VALUES('hebereke',1000,'A');
INSERT INTO "data" VALUES('hiroshi',400,'C');
INSERT INTO "data" VALUES('tomonaga',400,'B');
COMMIT;

となっているのが確認できる

ちなみに、
.output の出力先を ファイルにした場合
.show などの結果もファイルに出力されてしまう
この変更は、一度
.exit で sqlite を抜けるか
もしくは
.output stdout
とすれば、元に戻る

ちなみに、ファイルに出力されたSQL文は
vim などで編集することが可能

変更後、再度読み込みしたいときには
.read
を使う

今回なら
.read data.dump
でOK
ただし、元のデータがあると、すでに存在していますという
エラーがでてしまうので、一度
drop table data;
.read data.dump
で読み込みする

SQL文にする使い道で一番大きいのは
カラムの編集
SQLite にはカラムを削除できないので
.dump で一度出力して
vim などでSQL文を修正し
失敗したテーブルを
drop table テーブル名
で削除
そして、テーブル作成のSQLを修正した dump ファイルを
.read で読み込んで修正というやりかたが使える
スポンサーサイト



テーマ : Linux
ジャンル : コンピュータ

コメント

非公開コメント

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック