first commit
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
-- CreateEnum
|
||||
CREATE TYPE "TransferStatus" AS ENUM ('pending', 'accepted', 'rejected', 'cancelled');
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "instance_transfers" (
|
||||
"id" SERIAL NOT NULL,
|
||||
"instance_id" INTEGER NOT NULL,
|
||||
"from_user_id" INTEGER NOT NULL,
|
||||
"to_user_id" INTEGER NOT NULL,
|
||||
"status" "TransferStatus" NOT NULL DEFAULT 'pending',
|
||||
"snapshot" JSONB NOT NULL,
|
||||
"remark" TEXT,
|
||||
"reject_reason" TEXT,
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"accepted_at" TIMESTAMP(3),
|
||||
"rejected_at" TIMESTAMP(3),
|
||||
"cancelled_at" TIMESTAMP(3),
|
||||
|
||||
CONSTRAINT "instance_transfers_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "instance_transfers_from_user_id_status_idx" ON "instance_transfers"("from_user_id", "status");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "instance_transfers_to_user_id_status_idx" ON "instance_transfers"("to_user_id", "status");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "instance_transfers_instance_id_status_idx" ON "instance_transfers"("instance_id", "status");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "instance_transfers" ADD CONSTRAINT "instance_transfers_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "instance_transfers" ADD CONSTRAINT "instance_transfers_from_user_id_fkey" FOREIGN KEY ("from_user_id") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "instance_transfers" ADD CONSTRAINT "instance_transfers_to_user_id_fkey" FOREIGN KEY ("to_user_id") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
Reference in New Issue
Block a user