Some notes on how I handled manually cleaning up the database file. This needs to be automated later... ```bash apk add sqlite cd /data sqlite3 .open coffee.db ATTACH DATABASE 'archive.db' AS archive; .schema post CREATE TABLE IF NOT EXISTS archive."post" ("uri" varchar primary key, "cid" varchar not null, "topic" varchar not null, "indexedAt" varchar not null); SELECT COUNT(*) FROM post WHERE indexedAt < '2025-06-01T00:00:00Z'; INSERT INTO archive.post SELECT * FROM post WHERE indexedAt < '2025-06-01T00:00:00Z'; DETACH DATABASE archive; DELETE FROM post WHERE indexedAt < '2025-06-01T00:00:00Z'; apk add sqlite cd /data rm archive.db archive.db-journal cp archive.db.bak archive.db sqlite3 .open coffee.db ATTACH DATABASE 'archive.db' AS archive; INSERT INTO archive.post SELECT * FROM post WHERE indexedAt < '2025-06-15T00:00:00Z'; DETACH DATABASE archive; DELETE FROM post WHERE indexedAt < '2025-06-15T00:00:00Z'; .exit cp archive.db archive.db.bak ``` ```bash 32876d22b7d238:/data# apk add sqlite fetch https://dl-cdn.alpinelinux.org/alpine/v3.21/main/x86_64/APKINDEX.tar.gz fetch https://dl-cdn.alpinelinux.org/alpine/v3.21/community/x86_64/APKINDEX.tar.gz (1/4) Installing ncurses-terminfo-base (6.5_p20241006-r3) (2/4) Installing libncursesw (6.5_p20241006-r3) (3/4) Installing readline (8.2.13-r0) (4/4) Installing sqlite (3.48.0-r4) Executing busybox-1.37.0-r12.trigger OK: 10 MiB in 21 packages 32876d22b7d238:/data# sqlite3 SQLite version 3.48.0 2025-01-14 11:05:00 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .open coffee.db sqlite> ATTACH DATABASE 'archive.db' AS archive; sqlite> .schema post CREATE TABLE IF NOT EXISTS "post" ("uri" varchar primary key, "cid" varchar not null, "topic" varchar not null, "indexedAt" varchar not null); sqlite> CREATE TABLE IF NOT EXISTS archive."post" ("uri" varchar primary key, "cid" varchar not null, "topic" varchar not null, "indexedAt" varchar not null); sqlite> SELECT COUNT(*) FROM post WHERE indexedAt < '2025-06-01T00:00:00Z'; 35438 sqlite> INSERT INTO archive.post SELECT * FROM post WHERE indexedAt < '2025-06-01T00:00:00Z'; sqlite> DETACH DATABASE archive; sqlite> .exit # because this crashed quite a few times... 32876d22b7d238:/data# cp archive.db archive.db.bak # ... later 32876d22b7d238:/data# sqlite3 SQLite version 3.48.0 2025-01-14 11:05:00 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .open coffee.db sqlite> ATTACH DATABASE 'archive.db' AS archive; sqlite> SELECT COUNT(*) FROM post WHERE indexedAt < '2025-06-29T02:43:00Z'; 188598 sqlite> INSERT INTO archive.post SELECT * FROM post WHERE indexedAt < '2025-06-15T00:00:00Z'; sqlite> DETACH DATABASE archive; sqlite> DELETE FROM post WHERE indexedAt < '2025-06-15T00:00:00Z'; ```