Files
ushort/docs/data.md
T

1011 B

Data and database compatibility

ushort stores data in SQLite. The database can be mounted directly across upgrades; no export or import is required.

CREATE TABLE urls (
    short_code     TEXT    PRIMARY KEY,
    original_url   TEXT    NOT NULL,
    created_at     INTEGER NOT NULL,
    visit_count    INTEGER NOT NULL DEFAULT 0,
    retention_days INTEGER NOT NULL DEFAULT 0
);

Older databases missing retention_days are upgraded in place with a default of zero. Expired records are removed on startup and before each GET, POST, or DELETE request, using a strict expiry boundary.

Backups

Take a consistent backup before every production update. SQLite's online backup command avoids copying a database while a WAL transaction is active:

sqlite3 data/urlshort.db ".backup data/urlshort.db.pre-update"
sqlite3 data/urlshort.db.pre-update "PRAGMA integrity_check;"

Retain the backup until the updated release has passed health, redirect, write, and database-integrity checks.