Ctrl K
ComunidadGuías…

migrations/20260630000002_hub_refs.up.sql

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
CREATE TABLE IF NOT EXISTS shardline_hub_refs (
    repo_id TEXT NOT NULL,
    ref_name TEXT NOT NULL,
    sha TEXT NOT NULL,
    PRIMARY KEY (repo_id, ref_name),
    FOREIGN KEY (repo_id) REFERENCES shardline_hub_repos(repo_id) ON DELETE CASCADE
);

-- Preserve existing repositories when upgrading. Branch refs are stored in
-- their short Hub spelling so `main` and Git's `refs/heads/main` are one ref.
INSERT INTO shardline_hub_refs (repo_id, ref_name, sha)
SELECT revision.repo_id,
       CASE
           WHEN revision.ref_name LIKE 'refs/heads/%' THEN substr(revision.ref_name, 12)
           ELSE revision.ref_name
       END,
       revision.sha
FROM shardline_hub_revisions AS revision
WHERE revision.ref_name <> 'HEAD'
  AND NOT EXISTS (
      SELECT 1
      FROM shardline_hub_revisions AS newer
      WHERE newer.repo_id = revision.repo_id
        AND (
            CASE
                WHEN newer.ref_name LIKE 'refs/heads/%' THEN substr(newer.ref_name, 12)
                ELSE newer.ref_name
            END
        ) = (
            CASE
                WHEN revision.ref_name LIKE 'refs/heads/%' THEN substr(revision.ref_name, 12)
                ELSE revision.ref_name
            END
        )
        AND (
            newer.created_at_unix_seconds > revision.created_at_unix_seconds
            OR (
                newer.created_at_unix_seconds = revision.created_at_unix_seconds
                AND newer.sha > revision.sha
            )
        )
  );