diff --git a/app/database/migrations/20250127174933_upgrade_prisma/migration.sql b/app/database/migrations/20250127174933_upgrade_prisma/migration.sql new file mode 100644 index 000000000..835b5e844 --- /dev/null +++ b/app/database/migrations/20250127174933_upgrade_prisma/migration.sql @@ -0,0 +1,29 @@ +-- AlterTable +ALTER TABLE "_AssetReminderToTeamMember" ADD CONSTRAINT "_AssetReminderToTeamMember_AB_pkey" PRIMARY KEY ("A", "B"); + +-- DropIndex +DROP INDEX "_AssetReminderToTeamMember_AB_unique"; + +-- AlterTable +ALTER TABLE "_AssetToBooking" ADD CONSTRAINT "_AssetToBooking_AB_pkey" PRIMARY KEY ("A", "B"); + +-- DropIndex +DROP INDEX "_AssetToBooking_AB_unique"; + +-- AlterTable +ALTER TABLE "_AssetToTag" ADD CONSTRAINT "_AssetToTag_AB_pkey" PRIMARY KEY ("A", "B"); + +-- DropIndex +DROP INDEX "_AssetToTag_AB_unique"; + +-- AlterTable +ALTER TABLE "_CategoryToCustomField" ADD CONSTRAINT "_CategoryToCustomField_AB_pkey" PRIMARY KEY ("A", "B"); + +-- DropIndex +DROP INDEX "_CategoryToCustomField_AB_unique"; + +-- AlterTable +ALTER TABLE "_RoleToUser" ADD CONSTRAINT "_RoleToUser_AB_pkey" PRIMARY KEY ("A", "B"); + +-- DropIndex +DROP INDEX "_RoleToUser_AB_unique"; diff --git a/app/database/migrations/migration_lock.toml b/app/database/migrations/migration_lock.toml index fbffa92c2..648c57fd5 100644 --- a/app/database/migrations/migration_lock.toml +++ b/app/database/migrations/migration_lock.toml @@ -1,3 +1,3 @@ # Please do not edit this file manually -# It should be added in your version-control system (i.e. Git) +# It should be added in your version-control system (e.g., Git) provider = "postgresql" \ No newline at end of file diff --git a/app/database/schema.prisma b/app/database/schema.prisma index 73969fd46..d7c9f214f 100644 --- a/app/database/schema.prisma +++ b/app/database/schema.prisma @@ -6,7 +6,7 @@ datasource db { generator client { provider = "prisma-client-js" - previewFeatures = ["fullTextSearch"] + previewFeatures = ["fullTextSearchPostgres"] } model Image { @@ -766,27 +766,25 @@ model KitCustody { } model AssetReminder { - id String @id @default(cuid()) - name String - message String - alertDateTime DateTime + id String @id @default(cuid()) + name String + message String + alertDateTime DateTime activeSchedulerReference String? - organization Organization @relation(fields: [organizationId], references: [id]) - organizationId String - asset Asset @relation(fields: [assetId], references: [id], onDelete: Cascade) - assetId String - teamMembers TeamMember[] - createdBy User @relation(fields: [createdById], references: [id]) - createdById String - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt + organization Organization @relation(fields: [organizationId], references: [id]) + organizationId String + asset Asset @relation(fields: [assetId], references: [id], onDelete: Cascade) + assetId String + teamMembers TeamMember[] + createdBy User @relation(fields: [createdById], references: [id]) + createdById String + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt // Optimized indexes @@index([assetId, alertDateTime]) @@index([name(ops: raw("gin_trgm_ops")), message(ops: raw("gin_trgm_ops"))], type: Gin) @@index([organizationId, alertDateTime, assetId]) - // For scheduler related queries @@index([alertDateTime, activeSchedulerReference]) - } diff --git a/package-lock.json b/package-lock.json index e43a78486..959c17c55 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@fullcalendar/timegrid": "^6.1.15", "@markdoc/markdoc": "^0.4.0", "@paralleldrive/cuid2": "^2.2.2", - "@prisma/client": "^5.9.1", + "@prisma/client": "^6.2.1", "@radix-ui/react-alert-dialog": "^1.0.5", "@radix-ui/react-collapsible": "^1.1.1", "@radix-ui/react-dropdown-menu": "2.0.6", @@ -127,7 +127,7 @@ "postcss": "^8.4.38", "prettier": "3.0.3", "prettier-plugin-tailwindcss": "^0.5.11", - "prisma": "^5.9.1", + "prisma": "^6.2.1", "remix-flat-routes": "^0.6.4", "start-server-and-test": "^2.0.3", "tailwind-scrollbar": "^3.1.0", @@ -3145,12 +3145,13 @@ } }, "node_modules/@prisma/client": { - "version": "5.21.1", - "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.21.1.tgz", - "integrity": "sha512-3n+GgbAZYjaS/k0M03yQsQfR1APbr411r74foknnsGpmhNKBG49VuUkxIU6jORgvJPChoD4WC4PqoHImN1FP0w==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.2.1.tgz", + "integrity": "sha512-msKY2iRLISN8t5X0Tj7hU0UWet1u0KuxSPHWuf3IRkB4J95mCvGpyQBfQ6ufcmvKNOMQSq90O2iUmJEN2e5fiA==", "hasInstallScript": true, + "license": "Apache-2.0", "engines": { - "node": ">=16.13" + "node": ">=18.18" }, "peerDependencies": { "prisma": "*" @@ -3162,48 +3163,53 @@ } }, "node_modules/@prisma/debug": { - "version": "5.21.1", - "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.21.1.tgz", - "integrity": "sha512-uY8SAhcnORhvgtOrNdvWS98Aq/nkQ9QDUxrWAgW8XrCZaI3j2X7zb7Xe6GQSh6xSesKffFbFlkw0c2luHQviZA==", - "devOptional": true + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.2.1.tgz", + "integrity": "sha512-0KItvt39CmQxWkEw6oW+RQMD6RZ43SJWgEUnzxN8VC9ixMysa7MzZCZf22LCK5DSooiLNf8vM3LHZm/I/Ni7bQ==", + "devOptional": true, + "license": "Apache-2.0" }, "node_modules/@prisma/engines": { - "version": "5.21.1", - "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.21.1.tgz", - "integrity": "sha512-hGVTldUkIkTwoV8//hmnAAiAchi4oMEKD3aW5H2RrnI50tTdwza7VQbTTAyN3OIHWlK5DVg6xV7X8N/9dtOydA==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.2.1.tgz", + "integrity": "sha512-lTBNLJBCxVT9iP5I7Mn6GlwqAxTpS5qMERrhebkUhtXpGVkBNd/jHnNJBZQW4kGDCKaQg/r2vlJYkzOHnAb7ZQ==", "devOptional": true, "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "5.21.1", - "@prisma/engines-version": "5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36", - "@prisma/fetch-engine": "5.21.1", - "@prisma/get-platform": "5.21.1" + "@prisma/debug": "6.2.1", + "@prisma/engines-version": "6.2.0-14.4123509d24aa4dede1e864b46351bf2790323b69", + "@prisma/fetch-engine": "6.2.1", + "@prisma/get-platform": "6.2.1" } }, "node_modules/@prisma/engines-version": { - "version": "5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36", - "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36.tgz", - "integrity": "sha512-qvnEflL0//lh44S/T9NcvTMxfyowNeUxTunPcDfKPjyJNrCNf2F1zQLcUv5UHAruECpX+zz21CzsC7V2xAeM7Q==", - "devOptional": true + "version": "6.2.0-14.4123509d24aa4dede1e864b46351bf2790323b69", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-6.2.0-14.4123509d24aa4dede1e864b46351bf2790323b69.tgz", + "integrity": "sha512-7tw1qs/9GWSX6qbZs4He09TOTg1ff3gYsB3ubaVNN0Pp1zLm9NC5C5MZShtkz7TyQjx7blhpknB7HwEhlG+PrQ==", + "devOptional": true, + "license": "Apache-2.0" }, "node_modules/@prisma/fetch-engine": { - "version": "5.21.1", - "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.21.1.tgz", - "integrity": "sha512-70S31vgpCGcp9J+mh/wHtLCkVezLUqe/fGWk3J3JWZIN7prdYSlr1C0niaWUyNK2VflLXYi8kMjAmSxUVq6WGQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.2.1.tgz", + "integrity": "sha512-OO7O9d6Mrx2F9i+Gu1LW+DGXXyUFkP7OE5aj9iBfA/2jjDXEJjqa9X0ZmM9NZNo8Uo7ql6zKm6yjDcbAcRrw1A==", "devOptional": true, + "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "5.21.1", - "@prisma/engines-version": "5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36", - "@prisma/get-platform": "5.21.1" + "@prisma/debug": "6.2.1", + "@prisma/engines-version": "6.2.0-14.4123509d24aa4dede1e864b46351bf2790323b69", + "@prisma/get-platform": "6.2.1" } }, "node_modules/@prisma/get-platform": { - "version": "5.21.1", - "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.21.1.tgz", - "integrity": "sha512-sRxjL3Igst3ct+e8ya/x//cDXmpLbZQ5vfps2N4tWl4VGKQAmym77C/IG/psSMsQKszc8uFC/q1dgmKFLUgXZQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.2.1.tgz", + "integrity": "sha512-zp53yvroPl5m5/gXYLz7tGCNG33bhG+JYCm74ohxOq1pPnrL47VQYFfF3RbTZ7TzGWCrR3EtoiYMywUBw7UK6Q==", "devOptional": true, + "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "5.21.1" + "@prisma/debug": "6.2.1" } }, "node_modules/@prisma/instrumentation": { @@ -17536,19 +17542,20 @@ "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==" }, "node_modules/prisma": { - "version": "5.21.1", - "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.21.1.tgz", - "integrity": "sha512-PB+Iqzld/uQBPaaw2UVIk84kb0ITsLajzsxzsadxxl54eaU5Gyl2/L02ysivHxK89t7YrfQJm+Ggk37uvM70oQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-6.2.1.tgz", + "integrity": "sha512-hhyM0H13pQleQ+br4CkzGizS5I0oInoeTw3JfLw1BRZduBSQxPILlJLwi+46wZzj9Je7ndyQEMGw/n5cN2fknA==", "devOptional": true, "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { - "@prisma/engines": "5.21.1" + "@prisma/engines": "6.2.1" }, "bin": { "prisma": "build/index.js" }, "engines": { - "node": ">=16.13" + "node": ">=18.18" }, "optionalDependencies": { "fsevents": "2.3.3" diff --git a/package.json b/package.json index 4f5df507e..d8e427d70 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@fullcalendar/timegrid": "^6.1.15", "@markdoc/markdoc": "^0.4.0", "@paralleldrive/cuid2": "^2.2.2", - "@prisma/client": "^5.9.1", + "@prisma/client": "^6.2.1", "@radix-ui/react-alert-dialog": "^1.0.5", "@radix-ui/react-collapsible": "^1.1.1", "@radix-ui/react-dropdown-menu": "2.0.6", @@ -161,7 +161,7 @@ "postcss": "^8.4.38", "prettier": "3.0.3", "prettier-plugin-tailwindcss": "^0.5.11", - "prisma": "^5.9.1", + "prisma": "^6.2.1", "remix-flat-routes": "^0.6.4", "start-server-and-test": "^2.0.3", "tailwind-scrollbar": "^3.1.0",