first commit
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
-- CreateEnum (with IF NOT EXISTS to handle partial migrations)
|
||||
DO $$ BEGIN
|
||||
CREATE TYPE "IpType" AS ENUM ('inet4', 'inet6');
|
||||
EXCEPTION
|
||||
WHEN duplicate_object THEN null;
|
||||
END $$;
|
||||
|
||||
-- CreateTable (with IF NOT EXISTS)
|
||||
CREATE TABLE IF NOT EXISTS "ip_addresses" (
|
||||
"id" SERIAL NOT NULL,
|
||||
"address" TEXT NOT NULL,
|
||||
"type" "IpType" NOT NULL DEFAULT 'inet6',
|
||||
"is_primary" BOOLEAN NOT NULL DEFAULT false,
|
||||
"device" TEXT NOT NULL DEFAULT 'eth0',
|
||||
"instance_id" INTEGER NOT NULL,
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "ip_addresses_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex (with IF NOT EXISTS)
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS "ip_addresses_address_key" ON "ip_addresses"("address");
|
||||
|
||||
-- CreateIndex (with IF NOT EXISTS)
|
||||
CREATE INDEX IF NOT EXISTS "ip_addresses_instance_id_idx" ON "ip_addresses"("instance_id");
|
||||
|
||||
-- AddForeignKey (check if not exists)
|
||||
DO $$ BEGIN
|
||||
ALTER TABLE "ip_addresses" ADD CONSTRAINT "ip_addresses_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
EXCEPTION
|
||||
WHEN duplicate_object THEN null;
|
||||
END $$;
|
||||
Reference in New Issue
Block a user