Skip to content

Instantly share code, notes, and snippets.

@YouSysAdmin
Forked from david-zw-liu/remove_old_builds.sql
Created March 28, 2021 07:34
Show Gist options
  • Save YouSysAdmin/b3525d10a5ffa4ab40ef0afd1a84569d to your computer and use it in GitHub Desktop.
Save YouSysAdmin/b3525d10a5ffa4ab40ef0afd1a84569d 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