Skip to content

Instantly share code, notes, and snippets.

@zenofile
Forked from david-zw-liu/remove_old_builds.sql
Created April 13, 2022 01:39
Show Gist options
  • Save zenofile/7f3366d26adac0960e03e640d8a0c561 to your computer and use it in GitHub Desktop.
Save zenofile/7f3366d26adac0960e03e640d8a0c561 to your computer and use it in GitHub Desktop.
Keep 1000 builds per repos for DroneCI (sqlite3 version >= 3.25 required)
-- Thank @sbengo to figure out foreign_keys constraints is defaults to false in sqlite
-- Enable to delete logs by cascading delete
PRAGMA foreign_keys = ON;
WITH n_build_ids_per_repo as (
SELECT build_id
FROM (
SELECT
build_id,
build_repo_id,
DENSE_RANK() OVER (PARTITION BY build_repo_id ORDER BY build_id DESC) AS rank
FROM builds
) AS t
WHERE t.rank <= 1000
)
DELETE FROM
builds
WHERE
builds.build_id NOT IN (SELECT build_id FROM n_build_ids_per_repo);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment