SQLite接続文字列とファイルパス
SQLite接続文字列とファイルパス形式の解説。相対パス、絶対パス、インメモリデータベース、Prismaのfile: URI形式を解説します。
Best Practices
詳細な説明
SQLite接続文字列
SQLiteはクライアント・サーバー型データベースとは異なり、ディスク上のファイルに直接読み書きします。「接続文字列」は単純にファイルパスで、オプションでfile:プレフィックスを付けます。
ファイルパス形式
相対パス(アプリケーションの作業ディレクトリからの相対):
./database.sqlite
file:./database.sqlite
絶対パス:
/var/lib/myapp/database.sqlite
file:///var/lib/myapp/database.sqlite
Windows絶対パス:
C:\Users\dev\myapp\database.sqlite
file:///C:/Users/dev/myapp/database.sqlite
インメモリデータベース
テストや一時データの場合、SQLiteは完全にメモリ内で実行できます:
:memory:
file::memory:
インメモリデータベースは接続の有効期間中のみ存在します。閉じるとすべてのデータが失われます。ユニットテストに最適です。
Prisma設定
PrismaはSQLiteにfile:プレフィックスを使用します:
datasource db {
provider = "sqlite"
url = "file:./dev.db"
}
または環境変数経由:
DATABASE_URL="file:./dev.db"
URIパラメータ
file: URIはクエリパラメータをサポートしています:
| パラメータ | 目的 |
|---|---|
mode=ro |
読み取り専用で開く |
mode=rw |
読み書き可能(作成なし) |
mode=rwc |
読み書き、存在しない場合は作成(デフォルト) |
mode=memory |
インメモリデータベース |
cache=shared |
共有キャッシュモード |
パラメータ付きの例:
file:./app.db?mode=rwc&cache=shared
ファイル拡張子
一般的なSQLiteファイル拡張子には.sqlite、.sqlite3、.db、.s3dbがあります。拡張子は純粋に慣例的なもので、SQLiteは特定の拡張子を強制しません。
ユースケース
開発環境でのローカルSQLiteデータベースの設定、モバイルアプリケーション、組み込みシステム、またはCI/CDパイプラインでの軽量テストデータベースとして。