migration test

This commit is contained in:
Corban-Lee Jones 2025-05-29 00:30:50 +01:00
parent 4833a29859
commit 82037e5e20
2 changed files with 158 additions and 0 deletions

View File

@ -0,0 +1,155 @@
-- CreateEnum
CREATE TYPE "FeedSourceType" AS ENUM ('RSS', 'JSON');
-- CreateEnum
CREATE TYPE "FeedSourceHTTPMethod" AS ENUM ('GET', 'POST');
-- CreateEnum
CREATE TYPE "MatchingAlgorithms" AS ENUM ('ANY', 'ALL', 'EXACT', 'REGEX', 'FUZZY');
-- CreateEnum
CREATE TYPE "TextMutator" AS ENUM ('UWUIFY', 'UWUIFY_SFW', 'GOTHIC_SCRIPT', 'EMOJI_SUBSTITUTE', 'ZALGO', 'MORSE_CODE', 'BINARY', 'HEXADECIMAL', 'REMOVE_VOWELS', 'DOUBLE_CHARACTERS', 'SMALL_CASE', 'LEET_SPEAK', 'PIG_LATIN', 'UPSIDE_DOWN', 'ALL_REVERSED', 'REVERSED_WORDS', 'SHUFFLE_WORDS', 'RANDOM_CASE', 'GIBBERISH', 'SHAKESPEAREAN');
-- CreateTable
CREATE TABLE "FeedSourceHTTPHeader" (
"id" SERIAL NOT NULL,
"name" TEXT NOT NULL,
"value" TEXT NOT NULL,
"feed_source_id" INTEGER NOT NULL,
CONSTRAINT "FeedSourceHTTPHeader_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "FeedSourceCookies" (
"id" SERIAL NOT NULL,
"name" TEXT NOT NULL,
"value" TEXT NOT NULL,
"feed_source_id" INTEGER NOT NULL,
CONSTRAINT "FeedSourceCookies_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "FeedSource" (
"id" SERIAL NOT NULL,
"url" TEXT NOT NULL,
"http_username" TEXT,
"http_password" TEXT,
"http_method" "FeedSourceHTTPMethod" NOT NULL DEFAULT 'GET',
"http_post_payload" TEXT,
"redirect_limit" INTEGER NOT NULL DEFAULT 0,
"timeout_seconds" INTEGER,
CONSTRAINT "FeedSource_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Feed" (
"id" SERIAL NOT NULL,
"source_id" INTEGER NOT NULL,
"guild_id" INTEGER NOT NULL,
"name" TEXT NOT NULL,
"description" TEXT NOT NULL,
"website_url" TEXT,
"active" BOOLEAN NOT NULL,
"message_style_id" INTEGER,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "Feed_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Channel" (
"id" SERIAL NOT NULL,
"channel_id" TEXT NOT NULL,
"feedId" INTEGER NOT NULL,
CONSTRAINT "Channel_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Filter" (
"id" SERIAL NOT NULL,
"guild_id" TEXT NOT NULL,
"name" TEXT NOT NULL,
"value" TEXT NOT NULL,
"matching_algorithm" "MatchingAlgorithms" NOT NULL,
"is_insensitive" BOOLEAN NOT NULL,
"is_whitelist" BOOLEAN NOT NULL,
"published_threshold" TIMESTAMP(3),
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
CONSTRAINT "Filter_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "MessageStyle" (
"id" SERIAL NOT NULL,
"guild_id" TEXT NOT NULL,
"name" TEXT NOT NULL,
"colour" VARCHAR(7) NOT NULL,
"show_author" BOOLEAN NOT NULL,
"show_image" BOOLEAN NOT NULL,
"show_thumbnail" BOOLEAN NOT NULL,
"show_footer" BOOLEAN NOT NULL,
"show_timestamp" BOOLEAN NOT NULL,
"title_mutator" "TextMutator",
"description_mutator" "TextMutator",
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
CONSTRAINT "MessageStyle_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "_FeedToFilter" (
"A" INTEGER NOT NULL,
"B" INTEGER NOT NULL,
CONSTRAINT "_FeedToFilter_AB_pkey" PRIMARY KEY ("A","B")
);
-- CreateIndex
CREATE UNIQUE INDEX "Feed_source_id_key" ON "Feed"("source_id");
-- CreateIndex
CREATE INDEX "Feed_guild_id_created_at_idx" ON "Feed"("guild_id", "created_at" DESC);
-- CreateIndex
CREATE INDEX "Filter_guild_id_created_at_idx" ON "Filter"("guild_id", "created_at" DESC);
-- CreateIndex
CREATE UNIQUE INDEX "Filter_guild_id_name_key" ON "Filter"("guild_id", "name");
-- CreateIndex
CREATE INDEX "MessageStyle_guild_id_created_at_idx" ON "MessageStyle"("guild_id", "created_at" DESC);
-- CreateIndex
CREATE UNIQUE INDEX "MessageStyle_guild_id_name_key" ON "MessageStyle"("guild_id", "name");
-- CreateIndex
CREATE INDEX "_FeedToFilter_B_index" ON "_FeedToFilter"("B");
-- AddForeignKey
ALTER TABLE "FeedSourceHTTPHeader" ADD CONSTRAINT "FeedSourceHTTPHeader_feed_source_id_fkey" FOREIGN KEY ("feed_source_id") REFERENCES "FeedSource"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "FeedSourceCookies" ADD CONSTRAINT "FeedSourceCookies_feed_source_id_fkey" FOREIGN KEY ("feed_source_id") REFERENCES "FeedSource"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Feed" ADD CONSTRAINT "Feed_source_id_fkey" FOREIGN KEY ("source_id") REFERENCES "FeedSource"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Feed" ADD CONSTRAINT "Feed_message_style_id_fkey" FOREIGN KEY ("message_style_id") REFERENCES "MessageStyle"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Channel" ADD CONSTRAINT "Channel_feedId_fkey" FOREIGN KEY ("feedId") REFERENCES "Feed"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "_FeedToFilter" ADD CONSTRAINT "_FeedToFilter_A_fkey" FOREIGN KEY ("A") REFERENCES "Feed"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "_FeedToFilter" ADD CONSTRAINT "_FeedToFilter_B_fkey" FOREIGN KEY ("B") REFERENCES "Filter"("id") ON DELETE CASCADE ON UPDATE CASCADE;

View File

@ -0,0 +1,3 @@
# Please do not edit this file manually
# It should be added in your version-control system (e.g., Git)
provider = "postgresql"