Skip to main content

sqlite

Query, change, and back up a local SQLite database with the sqlite3 CLI. Use when the data already lives in a .db file.

معلومات المصدر

المستودع
oidsdev/honeypot
آخر نشاط في المصدر
١٢ أكتوبر ٢٠٢٦ في ٢١:٣٦
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٠
التفرعات
١

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
2 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
sqlite
description
Query, change, and back up a local SQLite database with the sqlite3 CLI. Use when the data already lives in a .db file.
# SQLite Work on a local SQLite database file. The `sqlite3` CLI is enough for inspection, one-off queries, and backups. Use Python's stdlib `sqlite3` when a value comes from outside the command you typed. ## When to use The user has a `.db` file, or they want a small single-file database for notes, logs, or agent state. This skill covers that file. It does not cover a client/server database. ## Install `sqlite3` is often already on the machine. Check, then install the package only if the command is missing. ```sh sqlite3 -version ``` ```sh # Debian / Ubuntu sudo apt-get install sqlite3 # macOS already ships sqlite3. Homebrew installs a newer build: brew install sqlite ``` Python needs no extra package. `import sqlite3` is in the standard library. ## Commands Create a database, add a table, and read it back. `-json` prints rows an agent can parse. ```sh sqlite3 notes.db "CREATE TABLE notes (id INTEGER PRIMARY KEY, body TEXT NOT NULL);" sqlite3 notes.db "INSERT INTO notes (body) VALUES ('hello');" sqlite3 -json notes.db "SELECT id, body FROM notes;" ``` See what is in the file: ```sh sqlite3 notes.db ".tables" sqlite3 notes.db ".schema" ``` Turn foreign keys on for a session, then check them. SQLite leaves them off until you ask. ```sh sqlite3 notes.db "PRAGMA foreign_keys = ON; PRAGMA foreign_keys;" ``` Back up a live database with the CLI backup command, then confirm the copy. Copying the file with `cp` can catch a WAL database mid-write. ```sh sqlite3 notes.db ".backup 'notes-backup.db'" sqlite3 notes-backup.db "PRAGMA integrity_check;" ``` When a value is not a literal you typed, bind it from Python: ```python import sqlite3 con = sqlite3.connect("notes.db") con.execute("PRAGMA foreign_keys = ON") row = con.execute("SELECT body FROM notes WHERE id = ?", (1,)).fetchone() print(row[0]) ``` Run an untrusted SQL script with the safe mode so it cannot shell out or load extensions: ```sh sqlite3 --safe notes.db ``` ## Gotchas - `PRAGMA foreign_keys` defaults to `0`. Set it on every connection that should enforce foreign keys. - A WAL database keeps `dbname-wal` and `dbname-shm` beside the main file. Use `.backup` so those pages are included. - `INTEGER PRIMARY KEY` is the rowid. Inserting without an id assigns one. - Build queries with `?` placeholders. Concatenating text into SQL is how a value becomes a statement. - `integrity_check` prints `ok` when the copy is consistent. --- Also on Honeypot — a free, open index of skills for AI agents: https://honeypot-e6c.pages.dev [![Indexed on Honeypot](https://honeypot-e6c.pages.dev/badge.svg)](https://honeypot-e6c.pages.dev)
عرض على GitHub