23 lines
944 B
SQL
23 lines
944 B
SQL
|
|
-- +goose Up
|
||
|
|
-- Фаза 7: кэш серверных превью ссылок (unfurl).
|
||
|
|
--
|
||
|
|
-- Ключ — sha256 (hex) от нормализованного URL: сам URL длинный и с query,
|
||
|
|
-- а сравнивать нужно каноническую форму (internal/unfurl.Normalize).
|
||
|
|
-- status: ok | empty | blocked | error. Истёкшие записи не отдаются
|
||
|
|
-- (expires_at > now) и удаляются фоновой уборкой.
|
||
|
|
CREATE TABLE link_previews (
|
||
|
|
url_hash TEXT PRIMARY KEY,
|
||
|
|
url TEXT NOT NULL,
|
||
|
|
title TEXT NOT NULL DEFAULT '',
|
||
|
|
description TEXT NOT NULL DEFAULT '',
|
||
|
|
site_name TEXT NOT NULL DEFAULT '',
|
||
|
|
image_url TEXT NOT NULL DEFAULT '',
|
||
|
|
status TEXT NOT NULL,
|
||
|
|
fetched_at TEXT NOT NULL,
|
||
|
|
expires_at TEXT NOT NULL
|
||
|
|
);
|
||
|
|
CREATE INDEX link_previews_expires_idx ON link_previews (expires_at);
|
||
|
|
|
||
|
|
-- +goose Down
|
||
|
|
DROP TABLE link_previews;
|