27 lines · 790 B
CREATE TABLE lfs_objects (
  repo_id TEXT NOT NULL REFERENCES repos(id) ON DELETE CASCADE,
  oid TEXT NOT NULL,
  size INTEGER NOT NULL,
  created_at INTEGER NOT NULL,
  PRIMARY KEY (repo_id, oid)
);

CREATE TABLE lfs_locks (
  id TEXT PRIMARY KEY,
  repo_id TEXT NOT NULL REFERENCES repos(id) ON DELETE CASCADE,
  path TEXT NOT NULL,
  ref_name TEXT,
  owner_id TEXT NOT NULL REFERENCES accounts(id) ON DELETE CASCADE,
  created_at INTEGER NOT NULL,
  UNIQUE (repo_id, path)
);

CREATE INDEX lfs_locks_repo_created ON lfs_locks (repo_id, created_at, id);

CREATE TABLE lfs_usage (
  owner_id TEXT PRIMARY KEY REFERENCES accounts(id) ON DELETE CASCADE,
  storage_bytes INTEGER NOT NULL DEFAULT 0,
  bandwidth_period TEXT NOT NULL DEFAULT '',
  bandwidth_bytes INTEGER NOT NULL DEFAULT 0
);