1CREATE TABLE IF NOT EXISTS extensions (
2 id SERIAL PRIMARY KEY,
3 name TEXT NOT NULL,
4 external_id TEXT NOT NULL,
5 latest_version TEXT NOT NULL,
6 total_download_count BIGINT NOT NULL DEFAULT 0
7);
8
9CREATE TABLE IF NOT EXISTS extension_versions (
10 extension_id INTEGER REFERENCES extensions(id),
11 version TEXT NOT NULL,
12 published_at TIMESTAMP NOT NULL DEFAULT now(),
13 authors TEXT NOT NULL,
14 repository TEXT NOT NULL,
15 description TEXT NOT NULL,
16 download_count BIGINT NOT NULL DEFAULT 0,
17 PRIMARY KEY(extension_id, version)
18);
19
20CREATE UNIQUE INDEX "index_extensions_external_id" ON "extensions" ("external_id");
21CREATE INDEX "trigram_index_extensions_name" ON "extensions" USING GIN(name gin_trgm_ops);
22CREATE INDEX "index_extensions_total_download_count" ON "extensions" ("total_download_count");