いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

SQLite3のデータベースをダンプする

関連記事

https://devlights.hatenablog.com/entry/2023/05/08/073000

https://devlights.hatenablog.com/entry/2023/05/09/073000

概要

以下、自分用のメモです。最近よく忘れることが多いのでここにメモメモ。。。

SQLite3を使うときに、やりたいときにやり方を忘れてしまっているトップ1が私の場合 ダンプするやり方 です。

なので、ここにメモメモ。。。

$ sqlite3 my.db .dump > dump.sql

前回、前々回で使っているデータベースだと以下のように出力されます。

PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE Departments (
    DepartmentID INTEGER PRIMARY KEY,
    DepartmentName TEXT NOT NULL
);
INSERT INTO Departments VALUES(1,'IT');
INSERT INTO Departments VALUES(2,'HR');
INSERT INTO Departments VALUES(3,'Finance');
CREATE TABLE Employees (
    EmployeeID INTEGER PRIMARY KEY,
    FirstName TEXT NOT NULL,
    LastName TEXT NOT NULL,
    DepartmentID INTEGER REFERENCES Departments(DepartmentID),
    HireDate TEXT NOT NULL
);
INSERT INTO Employees VALUES(1,'Taro','Yamada',1,'2020-01-01');
INSERT INTO Employees VALUES(2,'Hanako','Suzuki',1,'2020-01-15');
INSERT INTO Employees VALUES(3,'Ichiro','Tanaka',2,'2020-02-01');
INSERT INTO Employees VALUES(4,'Yoko','Watanabe',3,'2020-02-15');
CREATE TABLE Projects (
    ProjectID INTEGER PRIMARY KEY,
    ProjectName TEXT NOT NULL,
    StartDate TEXT NOT NULL,
    EndDate TEXT,
    DepartmentID INTEGER REFERENCES Departments(DepartmentID)
);
INSERT INTO Projects VALUES(1,'System Upgrade','2022-01-01','2022-06-30',1);
INSERT INTO Projects VALUES(2,'Recruitment Campaign','2022-01-01','2022-12-31',2);
INSERT INTO Projects VALUES(3,'Budget Planning','2022-04-01','2022-09-30',3);
CREATE TABLE Tasks (
    TaskID INTEGER PRIMARY KEY,
    TaskName TEXT NOT NULL,
    StartDate TEXT NOT NULL,
    EndDate TEXT,
    ProjectID INTEGER REFERENCES Projects(ProjectID),
    EmployeeID INTEGER REFERENCES Employees(EmployeeID)
);
INSERT INTO Tasks VALUES(1,'Server Maintenance','2022-01-01','2022-01-15',1,1);
INSERT INTO Tasks VALUES(2,'Database Migration','2022-01-15','2022-03-15',1,2);
INSERT INTO Tasks VALUES(3,'Interview Scheduling','2022-02-01','2022-02-28',2,3);
INSERT INTO Tasks VALUES(4,'Resume Screening','2022-01-15','2022-03-15',2,3);
INSERT INTO Tasks VALUES(5,'Financial Forecast','2022-04-01','2022-05-31',3,4);
INSERT INTO Tasks VALUES(6,'Expense Analysis','2022-06-01','2022-09-30',3,4);
INSERT INTO Tasks VALUES(99,'TEST','2023-05-01',NULL,NULL,NULL);
COMMIT;

参考情報

dba.stackexchange.com


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。