CREATE TABLE IF NOT EXISTS extensions ( id SERIAL PRIMARY KEY, name TEXT NOT NULL, external_id TEXT NOT NULL, latest_version TEXT NOT NULL, total_download_count BIGINT NOT NULL DEFAULT 0);CREATE TABLE IF NOT EXISTS extension_versions ( extension_id INTEGER REFERENCES extensions(id), version TEXT NOT NULL, published_at TIMESTAMP NOT NULL DEFAULT now(), authors TEXT NOT NULL, repository TEXT NOT NULL, description TEXT NOT NULL, download_count BIGINT NOT NULL DEFAULT 0, PRIMARY KEY(extension_id, version));CREATE UNIQUE INDEX "index_extensions_external_id" ON "extensions" ("external_id");CREATE INDEX "trigram_index_extensions_name" ON "extensions" USING GIN(name gin_trgm_ops);CREATE INDEX "index_extensions_total_download_count" ON "extensions" ("total_download_count");
CREATE TABLE IF NOT EXISTS extensions (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
external_id TEXT NOT NULL,
latest_version TEXT NOT NULL,
total_download_count BIGINT NOT NULL DEFAULT 0
);
CREATE TABLE IF NOT EXISTS extension_versions (
extension_id INTEGER REFERENCES extensions(id),
version TEXT NOT NULL,
published_at TIMESTAMP NOT NULL DEFAULT now(),
authors TEXT NOT NULL,
repository TEXT NOT NULL,
description TEXT NOT NULL,
download_count BIGINT NOT NULL DEFAULT 0,
PRIMARY KEY(extension_id, version)
);
CREATE UNIQUE INDEX "index_extensions_external_id" ON "extensions" ("external_id");
CREATE INDEX "trigram_index_extensions_name" ON "extensions" USING GIN(name gin_trgm_ops);
CREATE INDEX "index_extensions_total_download_count" ON "extensions" ("total_download_count");