PowerShellでSQliteの.dbファイルからテーブルの定義(CREATE TABLE)を取得する

powershell コンピュータ
powershell

フレームワークが作成してくれるテーブルの定義を確認したいので方法を調べてみました。
SQliteのテーブルの定義はsqlite_masterテーブルに記録されていますので、そちらから取得することが出来ます。

SQL

select sql from sqlite_master where type='table' and name='テーブル名';

PowerShellスクリプト

using namespace System.Data.SQLite

# モジュールのインポート
Import-Module SQLite

# データベースファイル
$db_path = "c:\sample.db"

# コネクションオブジェクトの生成
$con = [SQLiteConnection]::new() | % {
    $_.ConnectionString = ("Data Source = {0}"-f $db_path)
    $_.Open()
    $_
}
$cmd = [SQLiteCommand]::new()
$cmd.Connection = $con

# レコードの参照
$cmd.CommandText = @"
select sql from sqlite_master where type='table';
"@
$rec = $cmd.ExecuteReader()
while ($rec.Read()) {
    Write-Host ("{0}" -f $rec['sql'])
}
$rec.Close()

実行

PS>.\sqlite_sample2.ps1
CREATE TABLE sample (
    id int,
    name text,
    primary key(id)
)

コメント