jpskill.com
💼 ビジネス コミュニティ

sqlite-ops

PythonプロジェクトでSQLiteデータベースの状態管理、キャッシュ、非同期処理を効率的に行うためのパターンを提供するSkill。

📜 元の英語説明(参考)

Patterns for SQLite databases in Python projects - state management, caching, and async operations. Triggers on: sqlite, sqlite3, aiosqlite, local database, database schema, migration, wal mode.

🇯🇵 日本人クリエイター向け解説

一言でいうと

PythonプロジェクトでSQLiteデータベースの状態管理、キャッシュ、非同期処理を効率的に行うためのパターンを提供するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-17
取得日時
2026-05-17
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

SQLite 操作

Python プロジェクトにおける SQLite データベースのパターンです。

クイック接続

import sqlite3

def get_connection(db_path: str) -> sqlite3.Connection:
    conn = sqlite3.connect(db_path, check_same_thread=False)
    conn.row_factory = sqlite3.Row  # Dict-like access
    conn.execute("PRAGMA journal_mode=WAL")  # Better concurrency
    conn.execute("PRAGMA foreign_keys=ON")
    return conn

コンテキストマネージャーパターン

from contextlib import contextmanager

@contextmanager
def db_transaction(conn: sqlite3.Connection):
    try:
        yield conn
        conn.commit()
    except Exception:
        conn.rollback()
        raise

WAL モード

同時読み書きを有効にするには:

conn.execute("PRAGMA journal_mode=WAL")
モード 読み取り 書き込み 最適な用途
DELETE (デフォルト) 書き込み中にブロック シングル シンプルなスクリプト
WAL 同時実行 シングル Web アプリ、MCP サーバー

よくある落とし穴

問題 解決策
"database is locked" WAL モードを使用する
遅いクエリ インデックスを追加し、EXPLAIN QUERY PLAN を確認する
スレッドセーフティ check_same_thread=False を使用する
FK が適用されない PRAGMA foreign_keys=ON を実行する

CLI クイックリファレンス

sqlite3 mydb.sqlite    # Open database
.tables                # Show tables
.schema items          # Show schema
.headers on && .mode csv && .output data.csv  # Export CSV
VACUUM;                # Reclaim space

使用するタイミング

  • ローカルの状態/設定ストレージ
  • キャッシングレイヤー
  • イベントロギング
  • MCP サーバーの永続化
  • 小規模から中規模のデータセット

その他のリソース

詳細なパターンについては、以下を読み込んでください。

  • ./references/schema-patterns.md - 状態、キャッシュ、イベント、キューのテーブル設計
  • ./references/async-patterns.md - aiosqlite の CRUD、バッチ処理、コネクションプール
  • ./references/migration-patterns.md - バージョン移行、JSON 処理
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

SQLite Operations

Patterns for SQLite databases in Python projects.

Quick Connection

import sqlite3

def get_connection(db_path: str) -> sqlite3.Connection:
    conn = sqlite3.connect(db_path, check_same_thread=False)
    conn.row_factory = sqlite3.Row  # Dict-like access
    conn.execute("PRAGMA journal_mode=WAL")  # Better concurrency
    conn.execute("PRAGMA foreign_keys=ON")
    return conn

Context Manager Pattern

from contextlib import contextmanager

@contextmanager
def db_transaction(conn: sqlite3.Connection):
    try:
        yield conn
        conn.commit()
    except Exception:
        conn.rollback()
        raise

WAL Mode

Enable for concurrent read/write:

conn.execute("PRAGMA journal_mode=WAL")
Mode Reads Writes Best For
DELETE (default) Blocked during write Single Simple scripts
WAL Concurrent Single Web apps, MCP servers

Common Gotchas

Issue Solution
"database is locked" Use WAL mode
Slow queries Add indexes, check EXPLAIN QUERY PLAN
Thread safety Use check_same_thread=False
FK not enforced Run PRAGMA foreign_keys=ON

CLI Quick Reference

sqlite3 mydb.sqlite    # Open database
.tables                # Show tables
.schema items          # Show schema
.headers on && .mode csv && .output data.csv  # Export CSV
VACUUM;                # Reclaim space

When to Use

  • Local state/config storage
  • Caching layer
  • Event logging
  • MCP server persistence
  • Small to medium datasets

Additional Resources

For detailed patterns, load:

  • ./references/schema-patterns.md - State, cache, event, queue table designs
  • ./references/async-patterns.md - aiosqlite CRUD, batching, connection pools
  • ./references/migration-patterns.md - Version migrations, JSON handling