Files
incudal/server/prisma/migrations/20251216162514_add_storage_pools/migration.sql
T
2026-06-20 14:26:29 +08:00

47 lines
1.8 KiB
PL/PgSQL

/*
Warnings:
- The values [ipv4,ipv4_ipv6] on the enum `NetworkMode` will be removed. If these variants are still used in the database, this will fail.
*/
-- CreateEnum
CREATE TYPE "StoragePurpose" AS ENUM ('instance_data', 'instance_storage');
-- AlterEnum
BEGIN;
CREATE TYPE "NetworkMode_new" AS ENUM ('nat', 'nat_ipv6');
ALTER TABLE "public"."instances" ALTER COLUMN "network_mode" DROP DEFAULT;
ALTER TABLE "public"."packages" ALTER COLUMN "network_mode" DROP DEFAULT;
ALTER TABLE "packages" ALTER COLUMN "network_mode" TYPE "NetworkMode_new" USING ("network_mode"::text::"NetworkMode_new");
ALTER TABLE "instances" ALTER COLUMN "network_mode" TYPE "NetworkMode_new" USING ("network_mode"::text::"NetworkMode_new");
ALTER TYPE "NetworkMode" RENAME TO "NetworkMode_old";
ALTER TYPE "NetworkMode_new" RENAME TO "NetworkMode";
DROP TYPE "public"."NetworkMode_old";
ALTER TABLE "instances" ALTER COLUMN "network_mode" SET DEFAULT 'nat';
ALTER TABLE "packages" ALTER COLUMN "network_mode" SET DEFAULT 'nat';
COMMIT;
-- CreateTable
CREATE TABLE "storage_pools" (
"id" SERIAL NOT NULL,
"host_id" INTEGER NOT NULL,
"name" TEXT NOT NULL,
"driver" TEXT NOT NULL,
"purpose" "StoragePurpose" NOT NULL DEFAULT 'instance_data',
"description" TEXT,
"config" JSONB DEFAULT '{}',
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
CONSTRAINT "storage_pools_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "storage_pools_host_id_idx" ON "storage_pools"("host_id");
-- CreateIndex
CREATE UNIQUE INDEX "storage_pools_host_id_name_key" ON "storage_pools"("host_id", "name");
-- AddForeignKey
ALTER TABLE "storage_pools" ADD CONSTRAINT "storage_pools_host_id_fkey" FOREIGN KEY ("host_id") REFERENCES "hosts"("id") ON DELETE CASCADE ON UPDATE CASCADE;