2026-04-17 12:58:38 +08:00

60 lines
1.6 KiB
SQL

/*
Warnings:
- A unique constraint covering the columns `[username]` on the table `CaregiverAccount` will be added. If there are existing duplicate values, this will fail.
*/
-- AlterTable
ALTER TABLE "CaregiverAccount" ADD COLUMN "passwordHash" TEXT,
ADD COLUMN "username" TEXT;
-- CreateTable
CREATE TABLE "CaregiverSession" (
"id" TEXT NOT NULL,
"caregiverId" TEXT NOT NULL,
"sessionToken" TEXT NOT NULL,
"userAgent" TEXT,
"lastSeenAt" TIMESTAMP(3),
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "CaregiverSession_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "CaregiverSession_sessionToken_key" ON "CaregiverSession"("sessionToken");
-- CreateIndex
CREATE INDEX "CaregiverSession_caregiverId_updatedAt_idx" ON "CaregiverSession"("caregiverId", "updatedAt" DESC);
-- CreateIndex
CREATE UNIQUE INDEX "CaregiverAccount_username_key" ON "CaregiverAccount"("username");
-- MigrateData
INSERT INTO "CaregiverSession" (
"id",
"caregiverId",
"sessionToken",
"lastSeenAt",
"createdAt",
"updatedAt"
)
SELECT
CONCAT('legacy_', md5("id" || ':' || "sessionToken")),
"id",
"sessionToken",
NOW(),
NOW(),
NOW()
FROM "CaregiverAccount"
WHERE "sessionToken" IS NOT NULL;
-- DropIndex
DROP INDEX "CaregiverAccount_sessionToken_key";
-- AlterTable
ALTER TABLE "CaregiverAccount" DROP COLUMN "sessionToken";
-- AddForeignKey
ALTER TABLE "CaregiverSession" ADD CONSTRAINT "CaregiverSession_caregiverId_fkey" FOREIGN KEY ("caregiverId") REFERENCES "CaregiverAccount"("id") ON DELETE CASCADE ON UPDATE CASCADE;