Read-only SQLite Browsing on Mac: What It Protects
Opening a database to inspect a value should not quietly grant the app permission to change it. Petti starts with a genuinely read-only SQLite connection.
Read-only is more than a disabled button
A grid can look locked while its application still holds a writable connection. Petti’s locked state corresponds to SQLite’s actual access mode. Browsing, filtering and sorting do not require a writable connection. The lock stays closed until you deliberately enable editing.
If you try to edit while locked, Petti shows a brief hint in the status bar. There is no interrupting popup, and the database remains read-only.
What happens when you unlock?
Unlocking opens a read-write connection. The toolbar shows that editing is enabled. Double-click a cell, enter the new value and press Return or Tab to commit it. You can also paste spreadsheet cells. SQLite constraints still apply: an edit cannot silently bypass a unique key or a required value.
The app saves changes directly. It does not keep a separate document that waits for a final Save button. Cell edits support undo; that is useful for ordinary corrections, but it is not a replacement for a database backup.
Locking again ends writable access
Click the lock again to return to read-only mode. This closes writable access and clears the cell-edit undo history. Each open database has its own editing state, so unlocking one tab does not unlock another.
Read-only does not freeze another application
The application that owns a database can still change it while you inspect it. Use Refresh to reread the schema and current table. If you need a stable copy, obtain a SQLite-aware backup. A database using WAL mode can have committed data in a companion file; the SQLite WAL documentation explains why the main file is not always the whole state.
Back up before structural work
Petti creates a SQLite backup before its schema-editing operations. Other changes, including ordinary cell edits and CSV imports, should still be approached with the same care you would use in the application that created the database. Test changes on a copy when their impact is uncertain.
Read-only is the right default for exploration. Explicit editing is the right boundary for changes. Try that interaction in the Petti preview.