Files
website-portofolio/prisma/migrations/20260331193217_add_experience_model/migration.sql

82 lines
2.2 KiB
SQL

-- CreateTable
CREATE TABLE "users" (
"id" UUID NOT NULL,
"email" TEXT NOT NULL,
"password_hash" TEXT NOT NULL,
"name" TEXT NOT NULL,
CONSTRAINT "users_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "projects" (
"id" UUID NOT NULL,
"title" TEXT NOT NULL,
"slug" TEXT NOT NULL,
"description" TEXT NOT NULL,
"image_url" TEXT,
"repo_url" TEXT,
"live_url" TEXT,
"category" TEXT NOT NULL,
"is_published" BOOLEAN NOT NULL DEFAULT false,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "projects_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "skills" (
"id" UUID NOT NULL,
"name" TEXT NOT NULL,
"icon_name" TEXT,
"category" TEXT NOT NULL,
CONSTRAINT "skills_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "project_skills" (
"project_id" UUID NOT NULL,
"skill_id" UUID NOT NULL,
CONSTRAINT "project_skills_pkey" PRIMARY KEY ("project_id","skill_id")
);
-- CreateTable
CREATE TABLE "messages" (
"id" UUID NOT NULL,
"sender_name" TEXT NOT NULL,
"sender_email" TEXT NOT NULL,
"content" TEXT NOT NULL,
"is_read" BOOLEAN NOT NULL DEFAULT false,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "messages_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "experiences" (
"id" UUID NOT NULL,
"year" TEXT NOT NULL,
"title" TEXT NOT NULL,
"company" TEXT NOT NULL,
"description" TEXT NOT NULL,
"achievements" JSONB NOT NULL DEFAULT '[]',
"order" INTEGER NOT NULL DEFAULT 0,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "experiences_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "users_email_key" ON "users"("email");
-- CreateIndex
CREATE UNIQUE INDEX "projects_slug_key" ON "projects"("slug");
-- AddForeignKey
ALTER TABLE "project_skills" ADD CONSTRAINT "project_skills_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "project_skills" ADD CONSTRAINT "project_skills_skill_id_fkey" FOREIGN KEY ("skill_id") REFERENCES "skills"("id") ON DELETE CASCADE ON UPDATE CASCADE;