Adds services.last_auto_digest so the poller starts one automatic update per registry digest, and re-reads the service before starting it. Also records a bare image's running version as tag latest, only records well-formed digests, and shows a digest-less version unless a digest row of its tag was first seen at or after it.
21 lines
1.1 KiB
SQL
21 lines
1.1 KiB
SQL
ALTER TABLE services DROP CONSTRAINT services_available_source_check;
|
|
ALTER TABLE services ADD CONSTRAINT services_available_source_check
|
|
CHECK (available_source IN ('', 'webhook', 'poll'));
|
|
ALTER TABLE services ADD COLUMN available_digest text NOT NULL DEFAULT '';
|
|
ALTER TABLE services ADD COLUMN last_poll_error text NOT NULL DEFAULT '';
|
|
ALTER TABLE services ADD COLUMN last_auto_digest text NOT NULL DEFAULT '';
|
|
|
|
-- Every version the master has seen. '' means "no tag" / "digest unknown";
|
|
-- never NULL, so the unique constraint deduplicates.
|
|
CREATE TABLE image_versions (
|
|
id bigserial PRIMARY KEY,
|
|
repo text NOT NULL,
|
|
tag text NOT NULL DEFAULT '',
|
|
digest text NOT NULL DEFAULT '',
|
|
source text NOT NULL CHECK (source IN ('webhook', 'poll', 'running')),
|
|
first_seen_at timestamptz NOT NULL,
|
|
CONSTRAINT image_versions_tag_or_digest CHECK (tag <> '' OR digest <> ''),
|
|
CONSTRAINT image_versions_unique UNIQUE (repo, tag, digest)
|
|
);
|
|
CREATE INDEX image_versions_recent ON image_versions (repo, first_seen_at DESC, id DESC);
|