47 lines
1.8 KiB
PL/PgSQL
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;
|