/
githubmirror
/
tldraw
Обзор
Документация
Войти
/
githubmirror
/
tldraw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
apps/dotcom/zero-cache/migrations/000_seed.sql
72 строки
2 KB
David Sheldrick
[botcom] auto migrations again (#5014)
28 ноя 2024, 13:17
Не верифицирован
28 ноя 2024, 13:17
8329c84
Код
Авторство
О чём код?
CREATE TABLE "user" ( "id" VARCHAR PRIMARY KEY, "name" VARCHAR NOT NULL, "email" VARCHAR NOT NULL, "avatar" VARCHAR NOT NULL, "color" VARCHAR NOT NULL, "exportFormat" VARCHAR NOT NULL, "exportTheme" VARCHAR NOT NULL, "exportBackground" BOOLEAN NOT NULL, "exportPadding" BOOLEAN NOT NULL, "createdAt" BIGINT NOT NULL, "updatedAt" BIGINT NOT NULL, "flags" VARCHAR NOT NULL, "locale" VARCHAR, "animationSpeed" BIGINT, "edgeScrollSpeed" BIGINT, "colorScheme" VARCHAR, "isSnapMode" BOOLEAN, "isWrapMode" BOOLEAN, "isDynamicSizeMode" BOOLEAN, "isPasteAtCursorMode" BOOLEAN ); CREATE TABLE "file" ( "id" VARCHAR PRIMARY KEY, "name" VARCHAR NOT NULL, "ownerId" VARCHAR NOT NULL, "thumbnail" VARCHAR NOT NULL, "shared" BOOLEAN NOT NULL, "sharedLinkType" VARCHAR NOT NULL, "published" BOOLEAN NOT NULL, "lastPublished" BIGINT NOT NULL, "publishedSlug" VARCHAR NOT NULL, "createdAt" BIGINT NOT NULL, "updatedAt" BIGINT NOT NULL, "isEmpty" BOOLEAN NOT NULL, FOREIGN KEY ("ownerId") REFERENCES "user" ("id") ON DELETE CASCADE ); CREATE TABLE "file_state" ( "userId" VARCHAR NOT NULL, "fileId" VARCHAR NOT NULL, "firstVisitAt" BIGINT, "lastEditAt" BIGINT, "lastSessionState" VARCHAR, "lastVisitAt" BIGINT, PRIMARY KEY ("userId", "fileId"), FOREIGN KEY ("userId") REFERENCES "user" ("id") ON DELETE CASCADE, FOREIGN KEY ("fileId") REFERENCES "file" ("id") ON DELETE CASCADE ); CREATE TABLE "user_mutation_number" ( "userId" VARCHAR NOT NULL PRIMARY KEY, "mutationNumber" BIGINT NOT NULL ); CREATE PUBLICATION alltables FOR ALL TABLES; CREATE OR REPLACE FUNCTION delete_file_states() RETURNS TRIGGER AS $$ BEGIN IF OLD.shared = TRUE AND NEW.shared = FALSE THEN DELETE FROM file_state WHERE "fileId" = OLD.id AND OLD."ownerId" != "userId"; END IF; RETURN NEW; END; $$ LANGUAGE plpgsql; -- Step 2: Create the trigger CREATE TRIGGER file_shared_update AFTER UPDATE OF shared ON file FOR EACH ROW EXECUTE FUNCTION delete_file_states();