41 lines
1.4 KiB
MySQL
41 lines
1.4 KiB
MySQL
|
-- AlterTable
|
||
|
ALTER TABLE "users" ADD COLUMN "subs" TEXT[];
|
||
|
|
||
|
-- CreateTable
|
||
|
CREATE TABLE "Subscription" (
|
||
|
"id" SERIAL NOT NULL,
|
||
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
"subName" CITEXT NOT NULL,
|
||
|
"userId" INTEGER NOT NULL,
|
||
|
|
||
|
PRIMARY KEY ("id")
|
||
|
);
|
||
|
|
||
|
-- AddForeignKey
|
||
|
ALTER TABLE "Subscription" ADD FOREIGN KEY ("subName") REFERENCES "Sub"("name") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
||
|
-- AddForeignKey
|
||
|
ALTER TABLE "Subscription" ADD FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
||
|
-- create the nostr sub ignoring conflicts
|
||
|
INSERT INTO "Sub" ("name", "desc", "postTypes", "rankingType")
|
||
|
VALUES ('nostr', 'everything nostr related', '{LINK,DISCUSSION,POLL,BOUNTY}', 'WOT') ON CONFLICT DO NOTHING;
|
||
|
|
||
|
-- create bitcoin sub ignoring conflicts
|
||
|
INSERT INTO "Sub" ("name", "desc", "postTypes", "rankingType")
|
||
|
VALUES ('bitcoin', 'everything bitcoin related', '{LINK,DISCUSSION,POLL,BOUNTY}', 'WOT') ON CONFLICT DO NOTHING;
|
||
|
|
||
|
-- all root items with null subName put in bitcoin sub ... unless title has nostr in it
|
||
|
UPDATE "Item"
|
||
|
SET "subName" = 'bitcoin'
|
||
|
WHERE "Item"."subName" IS NULL
|
||
|
AND "Item"."parentId" IS NULL
|
||
|
AND "Item".title NOT ILIKE '%nostr%';
|
||
|
|
||
|
UPDATE "Item"
|
||
|
SET "subName" = 'nostr'
|
||
|
WHERE "Item"."subName" IS NULL
|
||
|
AND "Item"."parentId" IS NULL
|
||
|
AND "Item".title ILIKE '%nostr%';
|