fix: add initial Prisma migration so migrate deploy creates tables

This commit is contained in:
Vantz Stockwell 2026-03-13 08:22:27 -04:00
parent 5c82bbbb79
commit bced9728d3
2 changed files with 124 additions and 0 deletions

View File

@ -0,0 +1,121 @@
-- CreateSchema
CREATE SCHEMA IF NOT EXISTS "public";
-- CreateEnum
CREATE TYPE "Protocol" AS ENUM ('ssh', 'rdp');
-- CreateEnum
CREATE TYPE "CredentialType" AS ENUM ('password', 'ssh_key');
-- CreateTable
CREATE TABLE "users" (
"id" SERIAL NOT NULL,
"email" TEXT NOT NULL,
"password_hash" TEXT NOT NULL,
"display_name" TEXT,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
CONSTRAINT "users_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "host_groups" (
"id" SERIAL NOT NULL,
"name" TEXT NOT NULL,
"parent_id" INTEGER,
"sort_order" INTEGER NOT NULL DEFAULT 0,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
CONSTRAINT "host_groups_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "hosts" (
"id" SERIAL NOT NULL,
"name" TEXT NOT NULL,
"hostname" TEXT NOT NULL,
"port" INTEGER NOT NULL DEFAULT 22,
"protocol" "Protocol" NOT NULL DEFAULT 'ssh',
"group_id" INTEGER,
"credential_id" INTEGER,
"tags" TEXT[] DEFAULT ARRAY[]::TEXT[],
"notes" TEXT,
"color" VARCHAR(7),
"sort_order" INTEGER NOT NULL DEFAULT 0,
"host_fingerprint" TEXT,
"last_connected_at" TIMESTAMP(3),
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
CONSTRAINT "hosts_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "credentials" (
"id" SERIAL NOT NULL,
"name" TEXT NOT NULL,
"username" TEXT,
"domain" TEXT,
"type" "CredentialType" NOT NULL,
"encrypted_value" TEXT,
"ssh_key_id" INTEGER,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
CONSTRAINT "credentials_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "ssh_keys" (
"id" SERIAL NOT NULL,
"name" TEXT NOT NULL,
"key_type" VARCHAR(20) NOT NULL,
"fingerprint" TEXT,
"public_key" TEXT,
"encrypted_private_key" TEXT NOT NULL,
"passphrase_encrypted" TEXT,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
CONSTRAINT "ssh_keys_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "connection_logs" (
"id" SERIAL NOT NULL,
"host_id" INTEGER NOT NULL,
"protocol" "Protocol" NOT NULL,
"connected_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"disconnected_at" TIMESTAMP(3),
CONSTRAINT "connection_logs_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "settings" (
"key" TEXT NOT NULL,
"value" TEXT NOT NULL,
CONSTRAINT "settings_pkey" PRIMARY KEY ("key")
);
-- CreateIndex
CREATE UNIQUE INDEX "users_email_key" ON "users"("email");
-- AddForeignKey
ALTER TABLE "host_groups" ADD CONSTRAINT "host_groups_parent_id_fkey" FOREIGN KEY ("parent_id") REFERENCES "host_groups"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "hosts" ADD CONSTRAINT "hosts_group_id_fkey" FOREIGN KEY ("group_id") REFERENCES "host_groups"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "hosts" ADD CONSTRAINT "hosts_credential_id_fkey" FOREIGN KEY ("credential_id") REFERENCES "credentials"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "credentials" ADD CONSTRAINT "credentials_ssh_key_id_fkey" FOREIGN KEY ("ssh_key_id") REFERENCES "ssh_keys"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "connection_logs" ADD CONSTRAINT "connection_logs_host_id_fkey" FOREIGN KEY ("host_id") REFERENCES "hosts"("id") ON DELETE CASCADE ON UPDATE CASCADE;

View File

@ -0,0 +1,3 @@
# Please do not edit this file manually
# It should be added in your version-control system (i.e. Git)
provider = "postgresql"