41 lines
1.4 KiB
SQL
41 lines
1.4 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "InstanceTaskType" AS ENUM ('start', 'stop', 'restart', 'rebuild', 'clone');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "InstanceTaskStatus" AS ENUM ('PENDING', 'PROCESSING', 'COMPLETED', 'FAILED');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "instance_tasks" (
|
|
"id" SERIAL NOT NULL,
|
|
"instance_id" INTEGER NOT NULL,
|
|
"host_id" INTEGER NOT NULL,
|
|
"user_id" INTEGER NOT NULL,
|
|
"task_type" "InstanceTaskType" NOT NULL,
|
|
"status" "InstanceTaskStatus" NOT NULL DEFAULT 'PENDING',
|
|
"progress" TEXT,
|
|
"retry_count" INTEGER NOT NULL DEFAULT 0,
|
|
"image_alias" TEXT,
|
|
"target_name" TEXT,
|
|
"target_host_id" INTEGER,
|
|
"snapshot_name" TEXT,
|
|
"new_instance_id" INTEGER,
|
|
"error" TEXT,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"started_at" TIMESTAMP(3),
|
|
"finished_at" TIMESTAMP(3),
|
|
|
|
CONSTRAINT "instance_tasks_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "instance_tasks_host_id_status_idx" ON "instance_tasks"("host_id", "status");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "instance_tasks_instance_id_idx" ON "instance_tasks"("instance_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "instance_tasks_user_id_idx" ON "instance_tasks"("user_id");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "instance_tasks" ADD CONSTRAINT "instance_tasks_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|