| 
 | 1 | +-- CreateEnum  | 
 | 2 | +CREATE TYPE "SlaveNodeStatus" AS ENUM ('online', 'offline', 'syncing', 'error');  | 
 | 3 | + | 
 | 4 | +-- CreateEnum  | 
 | 5 | +CREATE TYPE "SyncLogStatus" AS ENUM ('success', 'failed', 'partial', 'running');  | 
 | 6 | + | 
 | 7 | +-- CreateEnum  | 
 | 8 | +CREATE TYPE "SyncLogType" AS ENUM ('full_sync', 'incremental_sync', 'health_check');  | 
 | 9 | + | 
 | 10 | +-- CreateTable  | 
 | 11 | +CREATE TABLE "slave_nodes" (  | 
 | 12 | +    "id" TEXT NOT NULL,  | 
 | 13 | +    "name" TEXT NOT NULL,  | 
 | 14 | +    "host" TEXT NOT NULL,  | 
 | 15 | +    "port" INTEGER NOT NULL DEFAULT 3001,  | 
 | 16 | +    "apiKey" TEXT NOT NULL,  | 
 | 17 | +    "status" "SlaveNodeStatus" NOT NULL DEFAULT 'offline',  | 
 | 18 | +    "lastSeen" TIMESTAMP(3),  | 
 | 19 | +    "version" TEXT,  | 
 | 20 | +    "syncEnabled" BOOLEAN NOT NULL DEFAULT true,  | 
 | 21 | +    "syncInterval" INTEGER NOT NULL DEFAULT 60,  | 
 | 22 | +    "configHash" TEXT,  | 
 | 23 | +    "lastSyncAt" TIMESTAMP(3),  | 
 | 24 | +    "latency" INTEGER,  | 
 | 25 | +    "cpuUsage" DOUBLE PRECISION,  | 
 | 26 | +    "memoryUsage" DOUBLE PRECISION,  | 
 | 27 | +    "diskUsage" DOUBLE PRECISION,  | 
 | 28 | +    "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,  | 
 | 29 | +    "updatedAt" TIMESTAMP(3) NOT NULL,  | 
 | 30 | + | 
 | 31 | +    CONSTRAINT "slave_nodes_pkey" PRIMARY KEY ("id")  | 
 | 32 | +);  | 
 | 33 | + | 
 | 34 | +-- CreateTable  | 
 | 35 | +CREATE TABLE "sync_logs" (  | 
 | 36 | +    "id" TEXT NOT NULL,  | 
 | 37 | +    "nodeId" TEXT NOT NULL,  | 
 | 38 | +    "type" "SyncLogType" NOT NULL,  | 
 | 39 | +    "status" "SyncLogStatus" NOT NULL DEFAULT 'running',  | 
 | 40 | +    "configHash" TEXT,  | 
 | 41 | +    "changesCount" INTEGER,  | 
 | 42 | +    "errorMessage" TEXT,  | 
 | 43 | +    "startedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,  | 
 | 44 | +    "completedAt" TIMESTAMP(3),  | 
 | 45 | +    "duration" INTEGER,  | 
 | 46 | + | 
 | 47 | +    CONSTRAINT "sync_logs_pkey" PRIMARY KEY ("id")  | 
 | 48 | +);  | 
 | 49 | + | 
 | 50 | +-- CreateTable  | 
 | 51 | +CREATE TABLE "config_versions" (  | 
 | 52 | +    "id" TEXT NOT NULL,  | 
 | 53 | +    "version" SERIAL NOT NULL,  | 
 | 54 | +    "configHash" TEXT NOT NULL,  | 
 | 55 | +    "configData" JSONB NOT NULL,  | 
 | 56 | +    "createdBy" TEXT,  | 
 | 57 | +    "description" TEXT,  | 
 | 58 | +    "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,  | 
 | 59 | + | 
 | 60 | +    CONSTRAINT "config_versions_pkey" PRIMARY KEY ("id")  | 
 | 61 | +);  | 
 | 62 | + | 
 | 63 | +-- CreateIndex  | 
 | 64 | +CREATE UNIQUE INDEX "slave_nodes_name_key" ON "slave_nodes"("name");  | 
 | 65 | + | 
 | 66 | +-- CreateIndex  | 
 | 67 | +CREATE UNIQUE INDEX "slave_nodes_apiKey_key" ON "slave_nodes"("apiKey");  | 
 | 68 | + | 
 | 69 | +-- CreateIndex  | 
 | 70 | +CREATE INDEX "slave_nodes_status_idx" ON "slave_nodes"("status");  | 
 | 71 | + | 
 | 72 | +-- CreateIndex  | 
 | 73 | +CREATE INDEX "slave_nodes_lastSeen_idx" ON "slave_nodes"("lastSeen");  | 
 | 74 | + | 
 | 75 | +-- CreateIndex  | 
 | 76 | +CREATE INDEX "sync_logs_nodeId_startedAt_idx" ON "sync_logs"("nodeId", "startedAt");  | 
 | 77 | + | 
 | 78 | +-- CreateIndex  | 
 | 79 | +CREATE UNIQUE INDEX "config_versions_configHash_key" ON "config_versions"("configHash");  | 
 | 80 | + | 
 | 81 | +-- CreateIndex  | 
 | 82 | +CREATE INDEX "config_versions_createdAt_idx" ON "config_versions"("createdAt");  | 
 | 83 | + | 
 | 84 | +-- AddForeignKey  | 
 | 85 | +ALTER TABLE "sync_logs" ADD CONSTRAINT "sync_logs_nodeId_fkey" FOREIGN KEY ("nodeId") REFERENCES "slave_nodes"("id") ON DELETE CASCADE ON UPDATE CASCADE;  | 
0 commit comments